2014-10-17 61 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,这是你或许应该使用,而不是接口直接与实施工作。

相关问题