什么意思有 <E>
关于代码 Collection<E>
?
最佳答案
这意味着您正在处理类型为 E
的项目集合。想象一下,你有一杯茶。除了茶,它还可以装咖啡,因此将杯子描述为一个通用实体是有意义的:
class Cup<T> { … }
现在您可以用咖啡或茶(或其他东西)填充它:
Cup<Tea> cuppa = new Cup<Tea>();
Cup<Coffee> foamee = new Cup<Coffee>();
为了让它工作,Tea
和 Coffee
也需要是在您的程序中定义的类型。
这是对您的代码的编译时约束。从(相当无用的)杯子示例回来,集合(数组、列表……)通常包含一个类型的项目,例如整数或字符串。泛型帮助您用 Java 表达:
Collection<String> strList = new ArrayList<String>();
strList.add("Foobar"); // Works.
strList.add(42); // Compile error!
注意到上面的编译错误了吗?你只有在使用泛型时才会得到这个。以下代码也有效,但不会给出很好的错误消息:
Collection strList = new ArrayList();
strList.add("Foobar"); // Works.
strList.add(42); // Works now. Do we really want this?!
关于java - <E>在Collection<E>中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056820/