gpt4 book ai didi

java - 如何获取给定对象中所有 "participate"的类?

转载 作者:行者123 更新时间:2023-11-29 06:07:51 26 4
gpt4 key购买 nike

我有一个 java 对象,类 Object 的实例 - 这就是我所知道的。现在我需要创建一个参与其创建的 Class 列表,包括它自己的类、所有父类、它的属性和方法的所有类。例如:

List obj = new ArrayList();
obj.add(new Integer(4));
obj.add(new Foo());
System.out.println(allRelatedClasses(obj));

应该输出这样的东西:

Object, List, Collection, Iterable, Serializable, Cloneable, RandomAccess, 
ArrayList, Integer, Foo

有可能吗?

最佳答案

Reflections图书馆可以处理相当多的事情。

就“什么参与了它的创建”而言,您需要将其从字节码中提取出来。有几个库可以帮助解决这个问题,比如 ASM 和 BCEL。如果您只需要所有 依赖项,DepFind可能就足够了。

如果您需要将自己限制在您所说的“它的创建中涉及什么”,那么您只需要 ctor 中涉及的类和 ctor 调用的方法。

但是,如果一个类使用了任何反射,那么所有的赌注都会落空——这些类型的依赖关系很难追踪,而且很难/不可能确定实际使用了什么。

关于java - 如何获取给定对象中所有 "participate"的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com