如何获得实例的最特定类?

Hen*_*y Z 3 java types

假设我有以下课程:

class A {}
class B extends A {}

A instA = new A();
A instB = new B();
Run Code Online (Sandbox Code Playgroud)

现在,就Java而言,instB是A类型的。

我如何找出instB的实际类型?

Pau*_*ora 5

您可以使用instB.getClass()。这将返回一个Class代表instB的运行时类型的对象。

资料来源:javadoc

您还可以对以下条件使用条件检查instanceof

if (instB instanceof B) {
    //then we know it is of type B
}
Run Code Online (Sandbox Code Playgroud)

instanceof将是更传统的方式,如果instB是的子类,则条件语句也将返回true B

您可能希望通过代码示例进一步解释您的用例,以获得更好的讨论。