在Java中,对Class.class的引用是做什么的?

Eri*_*ner 5 java android

我正在构建一个小型的Android应用程序,但这更像是一个Java问题,而不是一个Android问题.查看教程中的行看起来像:

startService(new Intent(this, MyService.class));
Run Code Online (Sandbox Code Playgroud)

"MyService.class"字段到底代表什么?这仅仅是对模板类的引用吗?

谢谢.

Dan*_*que 5

安迪的答案肯定是正确的,但我想稍微扩展一点.

.class是获取Class对象实例的特殊语法.当只有类型可用且没有相关对象的实例时,可以使用它.它可以与任何具体类型名称一起使用,包括数组和基元.例如,int.class有效.

这种(和其他方式)获取Class对象的方法记录在旧的Sun反射API文档中.

特殊.class语法经常出现在惯用语中作为通用代码中的"类型标记".获得的类文字.class在"在传递编译时和运行时类型信息的方法之间传递"时称为类型标记(Joshua Bloch的Effective Java 2e,p.142).