【问题标题】: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 实例。例如,要获取StringClass 对象,我们这样做:String.class。返回的值是Class 的实例,代表String 的类(注意使用大小写)。

    这里.class 用于实际类,为了使用其实例之一获得相同的结果,我们使用getclass() 方法。继续我们的示例,此 sn-p 返回与 String 对应的 Class 的相同实例:"".getClass()

    为了实现这个想法——这个 sn-p 将始终返回 true,对于具有您要测试的相应实例的任何类:

    "".getClass().equals(String.class)
    

    【讨论】:

      【解决方案2】:

      在这种情况下,classclass literal 的一部分,它指的是代表该类的 Class 对象。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-02-12
            • 2016-04-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-12-19
            • 2011-12-10
            • 1970-01-01
            相关资源
            最近更新 更多