加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用最特殊类型的两个对象作为返回类型?

发布时间:2020-12-15 08:27:36 所属栏目:Java 来源:网络整理
导读:我基本上想要的是,推断出更专业的类型,如下例所示: PredicateObject first;PredicateString second;PredicateString firstOr = first.or(second);PredicateString secondOr = second.or(first); 方法签名或(…)如何实现这一目标? 解决方法 这可以通过以下P
我基本上想要的是,推断出更专业的类型,如下例所示:

Predicate<Object> first;
Predicate<String> second;

Predicate<String> firstOr = first.or(second);
Predicate<String> secondOr = second.or(first);

方法签名或(…)如何实现这一目标?

解决方法

这可以通过以下Predicate< T> ::或的声明来完成:

default <R extends T> Predicate<R> or(Predicate<? super R> other) {
    return r -> this.test(r) || other.test(r);
}

这将允许或为两种谓词类型的任何子类型创建谓词.因此,例如,以下方法可行:

Predicate<Object> first;
Predicate<Number> second;

Predicate<Integer> firstOr = first.or(second);
Predicate<Integer> secondOr = second.or(first);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读