嗯,首先,這可能是愚蠢和瘋狂的。Java源代碼依賴關係圖
我正在嘗試構建(或使用,如果已經存在的話)一個框架,它接收大量Java源文件並輸出這些文件交互的方式;例如,file1.java可能會導入 file2.java; file2.java可以從file3.java調用靜態方法。如果這可以在不編譯或運行該組文件的情況下完成,那理想情況下會很好。我意識到Reflection API可以讓我探索一個類的各個部分,但是我正在尋找什麼?
此外,如何將其擴展到其他語言,例如Python或Lisp(在此添加任何其他語言)?
我真的不確定如何構建問題標題,所以如果之前有人問過這樣的問題,我會很高興能否將我與該問題聯繫起來。
從技術上說,你不要導入文件 - 導入僅僅是由編譯器使用時,使用非完全限定類名來解決完全限定類名。 –
通過反射,您可以查看類中的字段,方法的參數和返回類型 - 但反射不會告訴您有關在*方法中使用的類的任何內容。 –
查看OpenJDK的來源?我認爲你正在做一些編譯器已經在做的事情。 – nhahtdh