几天前我发现了一段 Java 代码,它在上下文中使用了class关键字,例如:
MyConcreteClass.class.AMethod();
我试图在 JFrame 中做到这一点,例如:
JFrame.class.getName();
这行得通,但是......我无法在互联网上弄清楚/找到这个关键字在这种情况下的含义。我只用它来声明类。
谁能解释我在这种情况下类的含义?
谢谢,
在这种情况下class
,它不是关键字,它是一个类的特殊属性(“类文字”),表示其对应的Class
. 例如,要获取 的Class
对象String
,我们这样做:String.class
。返回的值是Class
代表String
类的实例(注意大小写的使用)。
这.class
是在实际类上使用的,为了使用它的一个实例获得相同的结果,我们使用该getclass()
方法。继续我们的示例,此代码段返回Class
对应于 a String
:的相同实例"".getClass()
。
为了实现这个想法 -true
对于具有要测试的相应实例的任何类,此代码段将始终返回:
"".getClass().equals(String.class)
在您的示例中使用class
关键字将为您提供该Class<JFrame>
类型的对象实例。
当您执行 JFrame.class 时,您将获得一个Class<JFrame>
实例,因此您可以调用该getName
方法。
类文字允许您访问有关相关类的信息。