如果我将一个类声明为一个字段:
Class fooClass;
Eclipse 给了我警告:
类是原始类型。对泛型类的引用应该被参数化
这在实践中意味着什么?为什么我要这样做?如果我要求 Eclipse 进行“快速修复”,它会给我:
Class<?> fooClass;
这似乎并没有增加太多价值,但不再发出警告。
编辑:为什么类是通用的?您能否举一个参数化的例子,即是否可以有效地使用除 之外的东西<?>
?
编辑:哇!我还没有意识到这其中的深度。我还看过 Java Puzzler,它肯定让我对捕熊陷阱感到害怕。所以我会一直使用
Class<MyString> myStringClass = MyString.class;
而不是
Class myStringClass = MyString.class;
(但是从第一天开始就使用 Java,我并没有真正注意到 Class 何时变为泛型);
注意:我接受了@oxbow_lakes,因为这对我来说很有意义,但这显然是一个非常复杂的领域。我会敦促所有程序员使用特定的Class<MyString>
而不是Class
. 并且Class<?>
比Class
.