请检查以下代码,这显示了一些警告,
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);
}
答案 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