Java 我如何在功能接口';什么是直接声明?
最近,我想到了创建以下方法的想法:Java 我如何在功能接口';什么是直接声明?,java,Java,最近,我想到了创建以下方法的想法: /**返回一个{@link Predicate},用于测试其所有元素是否匹配作为参数传递的条件*/ 私有静态谓词AlliteLableElementsMatch(谓词elementMatchCondition){ 返回iterable->stream(iterable).allMatch(elementMatchCondition); } 然后我决定声明函数-字段,而不是声明上面的方法。 我能提供的最接近的不可编译的解决方案是: 私有静态最终函数>>Alli
/**返回一个{@link Predicate},用于测试其所有元素是否匹配作为参数传递的条件*/
私有静态谓词AlliteLableElementsMatch(谓词elementMatchCondition){
返回iterable->stream(iterable).allMatch(elementMatchCondition);
}
然后我决定声明函数
-字段,而不是声明上面的方法。我能提供的最接近的不可编译的解决方案是:
私有静态最终函数>>AlliteLableElementsMatch=
条件->可编辑->流(可编辑)。所有匹配(条件);
由于以下原因,未对其进行编译(IDE在allMatch(…)
中突出显示条件
)
我的问题是:
函数
-s声明中的某些类型对于类型系统,
谓词中的?
和谓词hello中的?
。谢谢你的回答。我想声明的是一个字段,而不是方法。你认为可能吗?@GromovAnton不可能,你可能想阅读更多关于“通配符捕获”方法的内容……作为结论,在这种情况下,没有办法告诉编译器这两个“?”都与同一类型相关,对吗?@GromovAnton是的,这是正确的。据说捕获转换无处不在
private static <T> Function<Predicate<T>, Predicate<Iterable<T>>> func() {
return condition -> iterable -> StreamSupport.stream(iterable.spliterator(), false).allMatch(condition);
}