java - Reflection api - 查找子类类型

标签 java inheritance reflection hierarchy

嗨,我正在尝试找出子类,形成一个父类(super class)对象。

if Class Super is the super class.
and Class Sub1 and Class Sub2 extends Class Super.(all classes are public)

Lets say I have a object of Super type as
Super superObject = new Sub1();

现在对于 superObject,是否可以找到 superObject 在 Java 中扩展的子类?

由于“父类(super class)不会知道它拥有的任何子类”,您能否告诉我上面的问题首先是有效,还是我遗漏了任何基本概念?

提前致谢。

最佳答案

getClass() 方法将在运行时返回对象的具体类型,而不是引用类型。所以简单地做:

Super superObject = new Sub1();
Class<? extends Super> klass = superObject.getClass();

会给你 Sub1.class 从你的问题中不清楚你想用它做什么。您可以简单地调用 getName() ,检查您拥有的其他引用是否具有相同类型,等等。

关于java - Reflection api - 查找子类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211417/

相关文章:

c++ - 多态性和对象存储

c# - 从 C# 类获取 JSON PropertyName,例如 json 属性的 "nameof(class.prop)"?

Java.lang.reflect.Proxy 从调用返回另一个代理导致赋值时出现 ClassCastException

java - broadcastreceiver Intent 启动 Activity 其他应用程序通知

java - ScrollView 内的 android 图像和按钮

java - 说明 数组列表

java - Selenium - 将元素是否存在设置为 boolean 值,然后执行 'if' 和 'else' 代码

Java:多重继承的替代方案

javascript - 了解 Javascript 中的类和继承 - 新模式

c# - 使用 Sybase 时 AppDomain.CurrentDomain.GetAssemblies() 抛出 System.Reflection.ReflectionTypeLoadException