我有一个实现接口(interface)的对象。对象被创建,但是被分配了接口(interface)的数据类型,类似于:
List<String> someList = new ArrayList<String>();
在此示例中,ArrayList
被隐式转换为 List
类型。稍后我如何以编程方式确定 List someList
实际上是伪装的 ArrayList
?
我必须使用 instanceof
和一堆选择语句来确定真实类型吗?或者有没有办法获取原始类型的类名?
希望这是一个很好的例子,实际代码更复杂并且处理自定义数据类型。
最佳答案
是的,您可以获得实际对象的 Class
类型,使用 Object#getClass()
方法。
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
}
}
关于java - 转换为接口(interface)类型后确定原始对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077950/