【问题标题】:Java class keywordJava 类关键字
【发布时间】:2013-04-23 16:20:03
【问题描述】:
前几天我发现了一段Java代码,在上下文中使用了class关键字,例如:
MyConcreteClass.class.AMethod();
我曾尝试在 JFrame 中执行此操作,例如:
JFrame.class.getName();
这可行,但是...我无法在互联网上弄清楚/找到该关键字在该上下文中的含义。我只用它来声明类。
谁能解释一下class在这种情况下是什么意思?
谢谢,
【问题讨论】:
标签:
java
class
methods
static
keyword
【解决方案1】:
在这种情况下,class 不是关键字,它是一个类的特殊属性(“类文字”),表示其对应的 Class 实例。例如,要获取String 的Class 对象,我们这样做:String.class。返回的值是Class 的实例,代表String 的类(注意使用大小写)。
这里.class 用于实际类,为了使用其实例之一获得相同的结果,我们使用getclass() 方法。继续我们的示例,此 sn-p 返回与 String 对应的 Class 的相同实例:"".getClass()。
为了实现这个想法——这个 sn-p 将始终返回 true,对于具有您要测试的相应实例的任何类:
"".getClass().equals(String.class)
【解决方案3】:
在您的示例中使用class 关键字将为您提供Class<JFrame> 类型的对象实例。
【解决方案4】:
当您执行 JFrame.class 时,您将获得一个 Class<JFrame> 实例,因此您可以调用 getName 方法。
类文字允许您访问有关类的信息。