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