【问题标题】:getclass() vs .class [duplicate]getclass() 与 .class [重复]
【发布时间】:2012-11-13 19:13:24
【问题描述】:

可能重复:
What’s the difference between calling MyClass.class and MyClass.getClass()

想要有一个Class<T> 对象,这两种方法有什么区别?

Test ob = new Test();

ob.getclass();

Test.class

【问题讨论】:

标签: java


【解决方案1】:

根据Class javadoc

第一种方法从Object获取Class对象。

第二种方法使用 class 字面量获取命名类型(或 void)的 Class 对象。

【讨论】:

  • 我认为它被称为类文字表示法。阅读此docs.oracle.com/javase/specs/jls/se7/html/…
  • 除了链接,你的回答真的没有太多解释。
  • @PaulBellora:编辑添加了一些内容,除此之外我不确定我还能添加什么,如果您有任何要添加的内容,请随时编辑我的答案。
  • @jacktrades 除了引用类型(包括数组)之外,还有每个原语和void 的类文字。这些对于反射很有用,例如 Method.getReturnType() 对于返回原语或 void 的方法。
  • @jacktrades:查看此讨论stackoverflow.com/questions/2352447/…
【解决方案2】:

getClass() 方法在java.lang.Object 中定义,因此可以在任何对象引用上调用。

它获取与引用指向的对象的运行时类型关联的 Class 对象。 .

getClass() 方法根本不类似于 .class。更接近的是 Class.forName(String),它为 String 命名的类获取一个 Class 对象。

在可以使用其中任何一个的情况下,请使用.class,因为它更有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2011-11-14
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2014-10-10
    • 2018-10-19
    相关资源
    最近更新 更多