我很清楚,what is a class literal in java,我只是想知道语法中.class
的原因是什么。这有什么歧义吗?我的意思是,不会使用Java替代语法
Class<String> c = String;
代替
Class<String> c = String.class;
工作?对我来说,
class
关键字看起来像样板。 最佳答案
当然,您可以使用该语法。但是使用.class
后缀使编译器的工作更加容易。要知道代码在语法上是正确的,它要做的工作很少。
没有后缀,编译器将不得不更加努力地理解它们之间的区别:
String.getName() // a method inherited from java.lang.Class<T>
和这个:
String.valueOf(...) // a static method from java.lang.String
如果您认为不需要
.class
后缀,您是否还认为f
和L
后缀没有用(分别用于float
和long
文字)?