我最近读过这篇文章并看过有人使用这个课程,但在几乎所有情况下,使用它null都会起作用 - 如果不是更直观的话.有人能提供一个具体的例子Optional来实现null无法或更清洁的方式吗?我唯一能想到的就是使用Maps不接受null密钥的东西,但即便如此,也可以使用null值的"映射"来完成.任何人都可以给我一个更有说服力的论点吗?谢谢.
我是Java新手.在本 文档中,他们将此作为使用通配符的用例:
static void printCollection(Collection c) {
Iterator i = c.iterator();
for (int k = 0; k < c.size(); k++) {
System.out.println(i.next());
}
}
Run Code Online (Sandbox Code Playgroud)
这是他们的解决方案:
static void printCollection(Collection<?> c) {
for (Object e : c) {
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我可以在没有外卡的情况下做同样的事情:
static <T> void printCollection(Collection<T> c) {
Iterator i = c.iterator();
for (int k = 0; k < c.size(); k++) {
System.out.println(i.next());
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我一个简单的用例,常规的泛型不起作用,但外卡会吗?
更新:此处的答案何时在Java Generics中使用通配符?不要告诉我们需要通配符.事实上,它是另一种方式.