我一直在阅读 Effective Java,并且遇到了无界集合类型 <?>
.但是,阅读让我相信除了 null
之外,您不能放置任何元素。 , 进入 Collection<?>
的实例.
所以,我的问题是:实例化 Collection<?>
的目的是什么?当我们只能插入 null
时元素,因为它似乎毫无意义。我一直在试图弄清楚这个概念,但它似乎没有多大意义。任何帮助将不胜感激。
最佳答案
Collection<?>
允许您创建接受任何类型 Collection
的方法。作为论据。例如,如果您想要一个返回 true
的方法如果 Collection
中有任何元素等于某个值,你可以这样做:
public boolean collectionContains(Collection<?> collection, Object toCompareTo) {
for (Object o : collection) {
if (toCompareTo.equals(o)) return true;
}
return false;
}
这个方法可以被任何类型的Collection
调用:
Set<String> strings = loadStrings();
collectionContains(strings, "pizza");
Collection<Integer> ints = Arrays.toList(1, 2, 3, 4, 5);
collectionContains(ints, 1337);
List<Collection<?>> collections = new ArrayList<>();
collectionContains(collections, ILLEGAL_COLLECTION);
关于java - 收集的意义是什么<?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18329944/