【问题标题】:what is the difference between getType() and getClass() in java?java中的getType()和getClass()有什么区别?
【发布时间】:2015-01-12 23:07:48
【问题描述】:

我曾经在 c# 中使用getType(),我发现它也存在于 Java 中。

什么时候应该使用getType(),什么时候应该使用getClass()

【问题讨论】:

标签: java class types


【解决方案1】:

getClassClass Object 的一个方法,它将被所有类继承,并且在每种情况下都将起作用。
getType 就像为不同目的而在不同类上编写的其他方法一样。

getClass()

Returns the runtime class of this Object. The returned Class object is the object that is locked by
static synchronized methods of the represented class.

正如documentation 所说
它对于所有将要在 Java 上编写的类都是通用的

getType() 在不同的情况下返回不同的东西

例如

Character方法getTypeReturns a value indicating a character's general category.

java.awt.Window方法getType返回Enum Window.Type

【讨论】:

    【解决方案2】:

    根据getClassgetType 的文档:

    getClass 返回“表示此对象的运行时类的 Class 对象。”

    getType 返回“一个 Class 对象,标识该对象所代表的字段的声明类型”

    主要区别在于someObject.getClass() 会给你一个someObjectruntime 类型的类对象,而someField.getType() 会给你一个已声明 someField 引用的字段类型。

    (调用someField.getClass() 将返回Field.class,因为它指的是Field 对象本身,而不是它所指的字段)。

    此外,虽然 getClass 可用于每个对象,但 getType 仅可用于作为反射 API 一部分的 Field 对象。

    【讨论】:

    • Field.classField. getClass()有什么区别?
    • Field.classField 类。 Field.getClass() 是不可能的,因为您只能在实例上调用 getClass
    • someField.classsomeField.getClass()有什么区别?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2011-05-31
    • 2011-11-23
    相关资源
    最近更新 更多