java松散耦合避免使用类似' ArrayList#39;的实现类型;请改用界面

时间:2015-01-09 19:56:54

标签: java arraylist loose-coupling

我们有这个应用程序用于称为Sonar的编码标准。我有这个函数返回一个ArrayList,声纳说“java松散耦合避免使用像'ArrayList'这样的实现类型;而是使用接口”

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

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

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

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:2)

您返回List<String>而不是ArrayList<String>

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

这种方法的优点是test()方法的用户不必知道您实际使用的List<String>的哪种实现,并且您将能够切换在不改变方法API的情况下使用不同的实现。