Trouble with wildcards

Paul Sandoz paul.sandoz at
Tue Dec 17 03:56:14 PST 2013

On Dec 17, 2013, at 12:10 AM, Zhong Yu <zhong.j.yu at> wrote:

> Not exactly sure what you guys are talking about... but I guess it's a
> complaint about the signature of Predicate.and()?
> It might be changed to be more receptive, like
>    <S extends T> Predicate<S> and(Predicate<? super S> other)
> then the previous examples could be compiled, as well as this one
>    Predicate<Serializable> p1 = null;
>    Predicate<CharSequence> p2 = null;
>    Predicate<String> p3 = p1.and(p2);

Thanks, we used a similar trick with Comparator.thenComparing but removed it [1] and i can no longer recall why, perhaps Henry can though.



-    default <S extends T> Comparator<S> thenComparing(Comparator<? super S> other) {
+    default Comparator<T> thenComparing(Comparator<? super T> other) {

More information about the lambda-dev mailing list