java - 集合上包含(对象)的不太可能的参数类型字符串
问题描述
我在 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 ");
}
}
解决方案
您正在尝试与 进行比较String
,String array
如果您想查找String
包含在字符串数组列表中的值,List<String[]>
您可以使用 java-8 流来执行此操作
publicNames.stream().flatMap(Arrays::stream).anyMatch(item->item.equals(findNames[i]))
如果任何
String[]
inpublicNames
containsfindNames[i]
将返回 true ,否则将返回 false
推荐阅读
- vue.js - 编译模板时出错:Vuejs
- css - 如何通过在 CSS 中导入字体来使用自定义图标
- javascript - 浏览器不活动时的地理位置
- swift - 无法为类型“范围”调用初始化程序
' 带有类型为 '(Range )' - java - 连接到 redminote4 时发生错误
- python - python函数如何调用并且不等待它完成处理,同时该函数必须调用一次。所以,线程必须停止
- extjs - Extjs - 如何在复选框和字段标签之间添加空格?
- c# - RavenDb 索引对嵌套结构/集合的属性进行过滤和排序(扇出索引)
- javascript - 从AngularJS中的数组中删除双引号
- ios - 安装后将文件添加到 iOS 应用程序