我試圖從尚未編譯的文件(* .java)中獲取java.lang; Class對象。我開發了一個NetBeans平臺的插件,我知道如何找到爲源文件夾(src)指定classLoader,然後我想獲取指定文件的Class對象。我可以調用loadClass來獲取它,但是這個dosent在沒有編譯的文件上工作。例如:如何從classLoader獲得java.lang;類而不是編譯文件* .java
ClassPath classPath = ClassPath.getClassPath(someFileObject, ClassPath.SOURCE);
ClassLoader loader = classPath.getClassLoader(true);
Class myLookingForClass = loader.loadClass("web.users.User");
// it is file User.java in package web.users
它是一種獲得它的方法嗎?
UPDATE:
好吧,我想實現機制whitch將產生自己的身體動態類(方法,變量等)。要做到這一點,我需要類的定義例如:方法返回類型或一些變量類型。
示例方案:
用戶工作的IDE(Netbeans的),他創造了一些類(但不編譯)。這個類將在某些類中使用,我們將在某些事件後動態創建(例如使用某個按鈕)。現在,將ClassLoader和加載類定義爲java.lang.Class並使用它們是沒有問題的。但是文件需要被編譯。現在我想知道是否有某種方式從文件中獲取java.lang.Class,例如「someFile.java和打包某些包
類加載器無法加載未編譯的類;它應該怎麼做? – 2014-10-31 13:04:01
這味道像一個XY問題。你爲什麼要這樣做?你的根本問題是什麼? – 2014-10-31 13:05:10