1

我正在设计一个模块来分析 Java 源代码并获取其结构。例如:如果有一个名为 Demo.java 的文件

public class A{
    private String str = "Hello  World";
    public int i = 0;
    public void f0(){}
} 

然后如何找出“Demo”类有这些信息:

  1. > 字段[]---> str:String i:int
  2. > 方法[]---->f0:void

它看起来像一个句法分析器。我正在寻找任何 API、框架或开源代码,以便更好地完成我的工作。如果您有任何想法,请与我分享,非常感谢!

4

3 回答 3

1

反射最适合这个,

例如

Class cls = Class.forName("com.dds.core.Emp");          
Object obj = cls.newInstance();         
Field[] fields = cls.getDeclaredFields();

可以迭代这些字段以获取完整列表。方法、构造函数等也有类似的方法可用。

几行简单的代码就可以为您做到这一点。

于 2013-11-14T11:18:41.230 回答
0

您最好的猜测将是一种基于反思的方法。

以下库可能有用:

于 2013-11-14T09:51:35.537 回答
0

Apache Commons BeanUtils 或 guava-reflection

来自 Apache Commons:

The Java language provides Reflection and Introspection APIs (see the java.lang.reflect and java.beans packages in the JDK Javadocs). However, these APIs can be quite complex to understand and utilize. The BeanUtils component provides easy-to-use wrappers around these capabilities.

于 2013-11-14T09:51:52.113 回答