2015-05-29 169 views
1

我可以使用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()但不實施(方法體)。

有無論如何查看使用這種方法或任何其他方法的完整實現細節?

回答

1

使用標準Java工具無法做到這一點。運行時無法訪問源方法實現。但是,您可以將此類文件作爲資源加載並將其傳遞給一些Java decompiler,它將盡最大努力生成該類的原始源代碼。或者,當然不能保證結果是100%準確的,如果你的類沒有調試信息就編譯出來會更糟糕。

0

有一個sourceforge項目。它將類文件作爲輸入,反編譯,提供源文件並且與平臺無關: Java Decompiler