【发布时间】:2020-05-15 16:21:09
【问题描述】:
使用下面的代码,我可以检查对象的 List 是否包含匹配特定值的字段。
public boolean containsName(final List<MyObject> list, final String name){
return list.stream().filter(o -> o.getName().equals(name)).findFirst().isPresent();
}
但是,这仅在 o.getName() 返回 String 时有效。我正在尝试修改代码,以便在 MyObject 包含 ArrayList<String> 并且名称可以匹配列表中的任何元素时有效。像这样的:
public boolean containsKeyword(final List<KeywordPOJO> list, final String keyword){
return list.stream().filter(o -> o.getKeywordList().equals(keyword)).findFirst().isPresent();
}
其中KeywordPOJO 返回一个关键字列表,而不是单个String。如果keyword 匹配这些关键字中的 ANY,则方法应返回 true。
目前,Eclipse 抛出警告:Unlikely argument type for equals(): String seems to be unrelated to ArrayList<String>(因为关键字是字符串,getKeywordList() 返回ArrayList<String>)
谢谢!
【问题讨论】: