我试图从尚未编译的文件(* .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