Qui*_*Wei 142 java methods class
.classJava 中的含义是什么?例如,如果我创建了一个名为的类Print.什么Print.class回报?
Jav*_*ier 137
当你写.class一个类名后,它所引用的类文本-
java.lang.Class对象,表示信息有关给定类.
例如,如果您的类是Print,那么Print.class是一个Print在运行时表示类的对象.它是由getClass()任何(直接)实例的方法返回的相同对象Print.
Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());
Run Code Online (Sandbox Code Playgroud)
chr*_*her 49
当没有可用类的实例时使用.class.
当有一个类的实例可用时,使用.getClass().
object.getClass()返回给定对象的类.例如:
String string = "hello";
System.out.println(string.getClass().toString());
Run Code Online (Sandbox Code Playgroud)
这将输出
class java.lang.String
Run Code Online (Sandbox Code Playgroud)
这是字符串对象的类:)
如果对象的实例可用,则获取其Class的最简单方法是调用 Object.getClass()
该.class语法
如果类型可用但没有实例,则可以通过附加.class类型名称来获取类.这也是获取基本类型的Class的最简单方法.
boolean b;
Class c = b.getClass(); // compile-time error
Class c = boolean.class; // correct
Run Code Online (Sandbox Code Playgroud)
简单来说,这个'.class'方法并不是指编译java代码后看到的字节码文件,也不是OOP理论中Class与Object概念之间的混淆.
这个'.class'方法在Java中用于代码Reflection.通常,您可以为您的类收集元数据,例如完整限定类名,常量列表,公共字段列表等.
检查这些链接(已在上面提到)以获取所有详细信息:
https://docs.oracle.com/javase/tutorial/reflect/class/classNew.html
https://docs.oracle.com/javase/8/docs /api/java/lang/Class.html
通常,在开始构建项目时,您不打算立即使用Reflection.在尝试管理已经运行的代码之后,您知道自己需要的东西.很多时候,您需要它来管理程序的多个实例.也许您想要识别每个特定的"克隆"以确定是否已定义某些内容,或者计算函数的数量,或者只是记录您的类的特定实例的详细信息.
| 归档时间: |
|
| 查看次数: |
95604 次 |
| 最近记录: |