java Predicate 问题

anakin_feng 2016-12-02 03:56:41
看到java1.8 Predicate 这个接口,看不明白有点,为什么能够返回Predicate类型的对象



default Predicate<T> and(Predicate<? super T> other) {
Objects.requireNonNull(other);
//为什么能够返回Predicate类型的对象
return (t) -> test(t) && other.test(t);
}
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
anakin_feng 2016-12-02
  • 打赏
  • 举报
回复
原来我看错了,是这个逻辑

return (t) -> (test(t) && other.test(t));
soton_dolphin 2016-12-02
  • 打赏
  • 举报
回复
相当于


 default Predicate<T> and(Predicate<? super T> other) {
        Objects.requireNonNull(other);
        //return (t) -> test(t) && other.test(t);
        
        return new Predicate<T>(){

			@Override
			public boolean test(T t) {
				// TODO Auto-generated method stub
				return this.test(t) && other.test(t);
			}
        	
        };
    }
soton_dolphin 2016-12-02
  • 打赏
  • 举报
回复
相当于

default Predicate<T> and(Predicate<T> other) {
        Objects.requireNonNull(other);
        //为什么能够返回Predicate类型的对象
        //return (t) -> test(t) && other.test(t);
        return new Predicate(){

			@Override
			public boolean test(Object o) {
				return this.test(o) && other.test(o);
			}
        };
    }

soton_dolphin 2016-12-02
  • 打赏
  • 举报
回复
Predicate<String> egg = s -> s.contains("egg"); Predicate<String> brown = s -> s.contains("brown"); Predicate<String> brownEggs = egg.and(brown); Predicate<String> otherEggs = egg.and(brown.negate());

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧