我是java8的新手,我试图理解这段代码。这是一段代码:
Stream.of("A", "B", "C").anyMatch(someObj.getStringValue()::equalsIgnoreCase)
someObj.getStringValue()引用某个对象并getStringValue()返回某个字符串值。
传入的方法引用的等效谓词是什么anyMatch(...)?
我的理解是这相当于:
Predicate<String> p = new Predicate<String>() {
@Override
public boolean test(String t) {
return someObject.getStringValue().equalsIgnoreCase(t);
}
}
Stream.of("A", "B", "C").anyMatch(p)
这样我得到错误“someObject在封闭范围中定义的局部变量必须是最终的或有效的最终”。任何对此的解释都值得赞赏。
桃花长相依
相关分类