我最近参加了一次 Java 考试,其中有一个很大的部分是关于 Java 中的通配符泛型的。然而,关于它们在实践中的用法却鲜有提及。我们什么时候应该使用它们?让我们看一个典型的用法:
void check(Collection<? extends Animal> list) {
// Do something
}
文档说,这个集合不允许向列表中添加任何元素。所以基本上通配符可用于使集合只读。那是他们唯一的用途吗?有什么实际需要吗?在过去的四年里,我参与了很多 Java 编程项目,但我还没有看到任何项目会广泛使用通配符这样的特性。
那么,从实际的角度来看,有没有什么情况下,通配符泛型是不可避免且必须的呢?
最佳答案
So, from the practical point of view, are there any situations when wildcard generics are unavoidable and necessary?
我不认为它们是“不可避免和必要的”,因为 Java 编译器无论如何都会删除它们。但是,在使用它们时,您可以在编译时获得更严格的类型检查,并且可以避免类型转换。反正谁愿意打字? :)
关于java - Java中通配符泛型的实际使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15540759/