gpt4 book ai didi

java - 在 Java 泛型中使用 的 'good' 原因是什么?

转载 作者:行者123 更新时间:2023-12-04 19:33:09 25 4
gpt4 key购买 nike

有时在我的代码中,我发现我可以通过使用裸泛型类或带有通配符的泛型类来解决问题。

我有一个设计,其中有一个像这样的类:

Class World<T, C> { .... }

与没有泛型的情况相比,总的来说肯定会让我的代码更干净。

然而,有时我会用

World theWorld;

或者有时我会得到

World<?, ?> theWorld;

我这样做是因为它似乎是让编译器接受它和我的试图避免它们会使我产生更多的转换或继承复杂性。

它看起来又丑又臭,但我无法证明我需要引入额外的复杂性来避免它。

在哪些情况下(如果有的话)您认为使用裸泛型或通配符泛型是可接受的惯用 Java?

最佳答案

有一个使用 <?> 的好例子(用例)在Wildcards泛型教程的一部分。

排序总结:如果你想写一个printCollection接受各种类型的方法Collection你可以使用 Collection<?>作为参数类型。您不能使用 Collection<Object>作为用于此目的的参数类型,因为它不是所有类型集合的父类(super class)型。

使用 Collection<?>而不是“纯”Collection在这种情况下更安全,因为您不能将项目添加到 Collection<?> printCollection 中的(null 除外)方法。

关于java - 在 Java 泛型中使用 <?> 的 'good' 原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com