相关疑难解决方法(0)

为什么Class <?>比Class更受欢迎

如果我将一个类声明为一个字段:

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.

java generics raw-types

30
推荐指数
1
解决办法
5379
查看次数

标签 统计

generics ×1

java ×1

raw-types ×1