我正在进行一个项目,该项目将用于从Java代码生成类图。该工具接受jar文件作为输入,输出Graphviz点格式文件作为输出。
我知道很容易找到继承和接口实现使用Java反射类#getSuperclass和类#getInterfaces。但我很难找出其中的关联、组成和依赖关系。它可以做反射或有一些外部库,将有助于?您提供的任何示例代码都将大有帮助。
关联和组合可以从类字段推断出来,所以Class#getDeclaredFields
.
对于依赖项,您必须查看代码以查看哪些类可能被用作变量,而使用反射则不能这样做。为此,您必须使用Apache Commons BCEL等库查看jar文件中.class文件的字节码。