【问题标题】:Can you show me what datatype.class means?你能告诉我 datatype.class 是什么意思吗?
【发布时间】:2015-08-05 17:00:32
【问题描述】:

我看到了这样的代码:

com.test.model.User.class

我在com.test.model 包中定义了User

但我不知道.class 是什么意思..?

我认为这不是一个静态参数,我也没有定义。

告诉我.class 是什么意思,在课堂上定义.class 我能找到.class 吗?

【问题讨论】:

标签: java class data-binding


【解决方案1】:

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());
}

【讨论】:

    【解决方案2】:

    用户类

    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());
    

    来源:What does .class mean in Java?

    【讨论】: