我想知道如何避免SonarQube问题:
声明应该使用Java集合接口,例如" List" 而不是特定的实现类,如" LinkedList"
当我想在代码中使用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 :(得分:2)
在这种情况下,建议使用定义此方法的接口,如LinkedList的JavaDoc中所指定:removeFirst
来自接口Deque并且这是您应该使用的接口,而不是直接使用该实现。