2014-10-17 58 views
0

我不知道如何才能避免SonarQube問題:如何避免SonarQube主要問題,同時使用LinkedList方法?

聲明應該使用Java集合的接口,如「目錄」 而不是具體的實現類,如「LinkedList的」

,當我想用在代碼鏈表的具體方法是這樣的:

LinkedList<String> items = new LinkedList<String>(); 
//add someitems 
String elem = items.removeFirst(); 

我發現的唯一的解決方法是改變隊列,但然後我需要也使用接口的方法:

Queue<String> items = new LinkedList<String>(); 
//add someitems 
String elem = items.poll(); 

我也可以在使用此方法之前投射對象。還有其他解決方案嗎?

+0

你應該比這個工具更清楚。如果你認爲這是正常的,在這種情況下,依賴於LinkedList而不是List,那麼就簡單地忽略警告。該工具可以幫助您,反之亦然。 – 2014-10-17 13:30:42

+0

這些建議在一天結束時是啓發式的。我會同意這個工具不好,而且太過激進。 – 2014-10-17 14:59:57

+0

列表 blam =新LinkedList (); – DwB 2014-10-17 15:17:42

回答

2

在這種非常情況下,recommandation是使用從其中定義此方法的接口,如在LinkedList的JavaDoc規定:removeFirst來自接口Deque,這是你或許應該使用,而不是接口直接與實施工作。

相關問題