我有一个实现接口的对象。创建对象,但为其分配了接口的数据类型,类似于:
List<String> someList = new ArrayList<String>();
在此示例中,ArrayList
被隐式转换为List
类型。我将如何在程序上稍后确定List someList
实际上是伪装的ArrayList
?
我必须使用instanceof
和一堆选择语句来确定真实类型吗?或者有没有办法获得原始类型的类名?
希望这是一个很好的例子,实际代码更复杂,并处理自定义数据类型。
答案 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
}
}