在转换为接口类型后确定原始对象类型

时间:2014-02-27 19:02:32

标签: java interface casting

我有一个实现接口的对象。创建对象,但为其分配了接口的数据类型,类似于:

List<String> someList = new ArrayList<String>();

在此示例中,ArrayList被隐式转换为List类型。我将如何在程序上稍后确定List someList实际上是伪装的ArrayList

我必须使用instanceof和一堆选择语句来确定真实类型吗?或者有没有办法获得原始类型的类名?

希望这是一个很好的例子,实际代码更复杂,并处理自定义数据类型。

1 个答案:

答案 0 :(得分:5)

是的,您可以使用Object#getClass()方法获取实际对象的Class类型。

class Parent { }
class Child extends Parent { }

class Main {
    public static void main(String... args) {
        Parent parent = new Child();
        System.out.println(parent.getClass());  // Child.class
    }
}