我在理解Java Predicates时遇到问题......
示例:
public class UserPredicates {
public static Predicate<User> isNameEmpty() {
return p -> p.getFirstName().isEmpty() && p.getLastName().isEmpty();
}
}
以上示例让我感到困惑,它如何知道p
有方法getFirstName()
和getLastName()
?
如果我理解正确,isNameEmpty()
返回一个带有一个参数(p
)的函数,但编译器是否真的通过查看返回类型来确定类型?
返回的函数是Predicate接口的test()
吗?