6

几天前我发现了一段 Java 代码,它在上下文中使用了class关键字,例如:

MyConcreteClass.class.AMethod();

我试图在 JFrame 中做到这一点,例如:

JFrame.class.getName();

这行得通,但是......我无法在互联网上弄清楚/找到这个关键字在这种情况下的含义。我只用它来声明类。

谁能解释我在这种情况下的含义?

谢谢,

4

4 回答 4

6

在这种情况下class,它不是关键字,它是一个类的特殊属性(“类文字”),表示其对应的Class. 例如,要获取 的Class对象String,我们这样做:String.class。返回的值是Class代表String类的实例(注意大小写的使用)。

.class是在实际类上使用的,为了使用它的一个实例获得相同的结果,我们使用该getclass()方法。继续我们的示例,此代码段返回Class对应于 a String:的相同实例"".getClass()

为了实现这个想法 -true对于具有要测试的相应实例的任何类,此代码段将始终返回:

"".getClass().equals(String.class)
于 2013-04-29T21:03:39.337 回答
2

在这种情况下,class类字面量的一部分,它指代表示该类的Class对象。

于 2013-04-29T21:01:49.427 回答
1

在您的示例中使用class关键字将为您提供该Class<JFrame>类型的对象实例。

于 2013-04-29T21:03:07.067 回答
1

当您执行 JFrame.class 时,您将获得一个Class<JFrame>实例,因此您可以调用该getName方法。

类文字允许您访问有关相关类的信息。

于 2013-04-29T21:08:30.170 回答