从Java教程:
最后,还有一种特殊的文字称为类文字,通过采用类型名称并附加"
.class"来形成; 例如,String.class.这指的Class是表示类型本身的对象(类型).
这个文字可以分配给哪种类型的变量?
如果可能,请举一个小例子.
Ste*_*ker 48
Class<String> c = String.class;
Run Code Online (Sandbox Code Playgroud)
查看Javadoc,java.lang.Class看看你能用这些小家伙做些什么 - 主要与反射有关
shi*_*kou 37
要理解这一点,您必须了解String是类Class的实例(对象).字符串文字(例如"我是一个字符串.")是表示类String的实例(对象)的符号,而类文字(例如Hashtable.class)是表示类Class的实例的符号.
Ben*_*Ben 22
感谢这里的其他好答案,你知道它是什么,但这里是一个典型的用法示例,也可以澄清:
private static Logger log = Logger.getLogger(YourClassHere.class);
Run Code Online (Sandbox Code Playgroud)
正如代码所示,这是我们初始化日志框架的一条线(在这个例子中,我使用的是org.apache.log4j包,但原理扩展到其他框架).该getLogger()方法需要一个类文字,因此它知道它的日志记录(即当前对象的类).
文字本身是MyClass. 如果你写,MyClass.class你会得到一个类对象的引用。如果您编写new MyClass(),它会使用字面量来为您获取所获得的类对象的实例MyClass.class。从实例中,您可以通过调用myClassInstance.getClass().
我不是 100% 确定,但文字本身不能分配给任何变量。您可以做的是将类的名称作为字符串获取并使用反射框架创建一个实例。
| 归档时间: |
|
| 查看次数: |
29978 次 |
| 最近记录: |