-2
我想知道为什么这段代码甚至可以编译。因为这里我们有一个Predicate
,它的类型可能是字符串或其任何超级类型。很明显,length()
在适用于此谓词的对象类中不可用。使用有界谓词
Predicate<? super String> predicate = s -> s.length() > 3;
Stream.of("cat", "bat", "rat", "doggy").filter(predicate).forEach(System.out::println);
任何人都可以描述一种情况,我们必须需要这些类型的有界类型谓词吗?
也许你应该看看:HTTP://计算器。 com/questions/4343202 /差异之间的超t和扩展-t在java中 – Flown
如果你已经阅读接受的答案,那么你会得到你的答案。 – Flown