首页 > 解决方案 > 集合上包含(对象)的不太可能的参数类型字符串

问题描述

我在 Eclipse 中收到警告:

on a 的String不太可能的参数类型contains(Object)Collection<String[]>

有没有办法修改代码以免收到此警告?

String[] findNames = {"shares","ticker","avgCost","mktPrice","gnLs","totVal"};    

ArrayList<String[]> publicNames = new ArrayList<String[]>();        
for(Field publicField : publicFields) {
    String[] name = new String[2];
    name[0] = publicField.getName();
    name[1] = publicField.getType().toString();
    publicNames.add(name);           
} 

for (int i = 0; i < 6; i++) {           
    if(publicNames.contains(findNames[i])) {
        System.out.println("\n***** Warning: instance variable " 
                           + findNames[i] 
                           + " declared as \"public\" *****\n ");               
    }           
}

标签: javastringarraylisttypescontains

解决方案


您正在尝试与 进行比较StringString array如果您想查找String包含在字符串数组列表中的值,List<String[]>

您可以使用 java-8 流来执行此操作

publicNames.stream().flatMap(Arrays::stream).anyMatch(item->item.equals(findNames[i])) 

如果任何String[]in publicNamescontainsfindNames[i]将返回 true ,否则将返回 false


推荐阅读