【发布时间】:2018-11-01 08:23:30
【问题描述】:
我目前正在尝试创建一个独特的List<Class> classList,例如其中包含一个对象的所有类
DemoObject.java
public class DemoObject {
private Integer id;
private String name;
private BigDecimal price;
private Boolean isActive;
private List<NestedDemoObject> nested;
}
NestedDemoObject.java
public class NestedDemoObject {
private Integer id;
private String nameNest;
private Boolean isActive;
}
我要创建的是一个方法public List<Class> getDistinctClasses(Class cl);,您将其作为输入,例如DemoObject.class,并返回一个列表
[DemoObject.class, Integer.class, String.class, BigDecimal.class, Boolean.class, List.class, NestedDemoObject.class]
NestedDemoObject.class 的另一个例子是
[NestedDemoObject.class, Integer.class, String.class, Boolean.class]
我尝试使用来自Class 的.getDeclaredClasses() 没有任何运气。
有什么方法可以使用 Reflection API 从对象中获取所有嵌套类?
感谢任何帮助或指导。
【问题讨论】:
-
我相信您正在寻找的是
Fields的类,对吗? -
是的,我希望获取所有不同的字段类,包括根对象类(将我的示例帖子更改为包含和根对象类)
-
@ohlec 用 getDeclaredFields() 尝试了 Mark 的解决方案,效果很好,但正如你所说,以这种方式获取 NestedDemoObject 是不可能的。有什么可能的解决方法吗?
-
@ohlec 其实你是不对的。字段知道它们自己的通用类型。请在单独的帖子中查看我的答案。
-
@ETO 确实,谢谢。为了简洁,我将删除我的 cmets。
标签: java class reflection