使用Java Reflection查看方法的实现(方法体)

时间:2015-05-29 06:40:09

标签: java

我可以使用java反射查看类的方法。

    Method[] methods = Person.class.getMethods();
    for(Method method : methods){
        System.out.println("method = " + method);
    }

person班,

class Person{
String name;
int age;

Person(String name,int age){
    this.name = name;
    this.age = age;
}
public int count(){
    int count = 10*20;
    return count;
} 
}

使用反射count方法会查看, method = public int Person.count()但不是实现(方法体)。

无论如何都要查看使用这种方法或其他任何方法的方法的完整实现细节?

2 个答案:

答案 0 :(得分:1)

使用标准Java工具无法做到这一点。源方法实现在运行时不可访问。但是,您可以将此类文件作为资源加载并将其传递给某些Java decompiler,这将尽力生成该类的原始源代码。或者当然不能保证结果是100%准确的,如果你的类没有调试信息而编译它会更糟。

答案 1 :(得分:0)

有一个sourceforge项目。它将类文件作为输入,反编译,提供源文件并且与平台无关: Java Decompiler