java - 收集的意义是什么<?>

标签 java

我一直在阅读 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/

相关文章:

java - 每5秒调用一次API的Android后台任务

java - 允许重复、保持插入顺序并允许删除和插入的结构

java - 将对象设置为null以及Java中的程序流程

java.lang.OutOfMemoryError : Java heap space in DBeaver 错误

java - 更新第三方jar的步骤

java - JVM G1 GC日志分析

java - 更好的 lambda 在对象层次结构上获得不同的值

java - 切片一个非常大的 jpg map 图像,49000* 34300 像素

java - 不断收到 : Exception in thread "main" java. util.NoSuchElementException

java - 如何隐藏 GWT com.google.gwt.dev.DevMode 应用程序窗口?