ArrayList <string []>可能不包含String对象

时间:2017-01-11 06:59:01

标签: java android string arraylist sonarqube

请检查以下代码,这显示了一些警告,

ArrayList<String[]> may not contain objects of String

ArrayList<String[]> mName = new ArrayList<>();
mValue = "John";
if (!mName.contains(mValue)) {

    String[] details = new String[]{"Driver", "Part-time"};
    mName.add(details);

}

2 个答案:

答案 0 :(得分:2)

您已创建 String [] ArrayList 或字符串数​​组。但是你要检查ArrayList<String[]> mName是否包含字符串。 Java不会允许它。在这种情况下,您可以检查ArrayList是否包含任何String[]。因此,如果您想检查"John"中的字符串ArrayList,请更改

ArrayList<String[]> mName = new ArrayList<>();

ArrayList<String> mName = new ArrayList<>();

如果您想保留以前的代码,请将mValue更改为String数组。变化

mValue = "John"

String[] mValue = new String[]{"John"};

N.B: mValue = "John"此行缺少;

答案 1 :(得分:1)

您的if条件返回false,因为String[]String 不同类型,因此String类equals方法将会总是返回错误。您必须重新考虑您的代码。请同时查看类似的问题:Using contains on an ArrayList with integer arrays