【发布时间】:2015-08-05 17:00:32
【问题描述】:
我看到了这样的代码:
com.test.model.User.class
我在com.test.model 包中定义了User 类
但我不知道.class 是什么意思..?
我认为这不是一个静态参数,我也没有定义。
告诉我.class 是什么意思,在课堂上定义.class 我能找到.class 吗?
【问题讨论】:
标签: java class data-binding
我看到了这样的代码:
com.test.model.User.class
我在com.test.model 包中定义了User 类
但我不知道.class 是什么意思..?
我认为这不是一个静态参数,我也没有定义。
告诉我.class 是什么意思,在课堂上定义.class 我能找到.class 吗?
【问题讨论】:
标签: java class data-binding
Xyz.class是Java提供的一种语法,用于获取代表class Xyz对应的类的Class<Xyz>元数据对象。在您的情况下,它是 User 类。
Class<T> 对象让您检查相应类的字段和方法,并且在某些情况下允许您创建相应类的实例。这是 Java 反射功能的一部分。
Class<User> cl = User.class;
for (Method m : cl.getMethods()) {
System.out.println(m.getName());
}
for (Field f : cl.getFields()) {
System.out.println(f.getName());
}
【讨论】:
用户类
User.class 会将User 类的表示形式作为Class 对象返回。
此表达式的正式术语是类文字,如 Java 语言规范的第 15.8.2 节中所引用。
当你在类名后面写 .class 时,它引用代表给定类的 Class 对象。
例如,如果您的类是 Print(建议类名以大写字母开头),则 Print.class 是一个对象,表示运行时的类 Print。它与 Print 的任何(直接)实例的 getClass() 方法返回的对象相同。
Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());
【讨论】: