一尘不染

阶级与阶级之间的区别

java

ClassClass<?>声明有什么区别。

  • Class a;
  • Class<?> b;

阅读 241

收藏
2020-12-03

共1个答案

一尘不染

与所有通用类型和原始类型相同:

Class          // An unknown class (raw type)
Class<?>       // An unknown class (generic version)
Class<String>  // The String class

在这种特殊情况下,Class和之间没有太大的实际区别,Class<?>因为它们都表示未知的类。根据现有的声明,编译器可以要求使用通用类型而不是原始类型。

但是: 从Java
1.5开始,您应该尽可能使用通用形式。Class<?>明确指出您的意思是“未知的班级”,Class<String>明确指出您的意思是该String班级。原始Class可能意味着
两者

最后,它对编译器没有太大的影响,但是在使代码的意图更易于理解和可维护方面却产生了巨大的不同。

2020-12-03