【发布时间】:2016-12-20 06:48:26
【问题描述】:
我想知道为什么这段代码还能编译。因为这里我们有一个Predicate,它的类型可以是String 或者它的任何超类型。很明显,length() 在适合这个谓词的对象类中是不可用的。
Predicate<? super String> predicate = s -> s.length() > 3;
Stream.of("cat", "bat", "rat", "doggy").filter(predicate).forEach(System.out::println);
谁能描述我们必须需要这些类型的有界类型谓词的情况?
【问题讨论】:
-
如果您已经阅读了接受的答案,那么您就会得到答案。