使用有界谓词

时间:2016-08-13 10:31:25

标签: generics java-8 predicate

我想知道为什么这段代码甚至会编译。因为我们所拥有的是Predicate,其类型可以是 String或其任何超类型。显然,length()在Object class 中不可用,它适用于此谓词

Predicate<? super String> predicate = s -> s.length() > 3;
Stream.of("cat", "bat", "rat", "doggy").filter(predicate).forEach(System.out::println);

任何人都可以描述我们必须需要这种类型的有界类型谓词吗?

0 个答案:

没有答案