java 松散耦合避免使用像 'ArrayList' 这样的实现类型;改用界面

java Loose Coupling avoid using implemnetation types like 'ArrayList'; Use the interface instead

我们有这个名为 Sonar 的编码标准应用程序。我有一个函数,returns 一个 ArrayList 和声纳说 "java Loose Coupling avoid using implemnetation types like 'ArrayList'; Use the interface instead"

例如,如果我这样做,声纳会给出该错误。

    public ArrayList<String> test()
       {
       ArrayList<String> testing = new ArrayList<String>();
        return testing;
        }

我不确定如何更正声纳消息以改用接口。

任何建议都会有所帮助。

你 return 一个 List<String> 而不是 ArrayList<String> :

public List<String> test()
{
    List<String> testing = new ArrayList<String>();
    return testing;
}

这种方法的优点是 test() 方法的用户不必知道您实际使用的是 List<String> 的哪个实现,并且您可以切换到不改变方法的 API 的不同实现。