我将类名存储在属性文件中.我知道类存储将实现IDynamicLoad.如何动态实例化该类?
现在我有
Properties foo = new Properties();
foo.load(new FileInputStream(new File("ClassName.properties")));
String class_name = foo.getProperty("class","DefaultClass");
//IDynamicLoad newClass = Class.forName(class_name).newInstance();
Run Code Online (Sandbox Code Playgroud)
newInstance只加载编译的.class文件吗?如何加载未编译的Java类?
我知道这可能与类加载器有关,但是我找不到一个例子(可能是我正在谷歌搜索错误的关键字.
我试图从字符串加载一个类(或方法).该字符串不包含类的名称,但包含类的代码,例如
class MyClass implements IMath {
public int add(int x, int y) {
return x + y;
}
}
Run Code Online (Sandbox Code Playgroud)
然后做这样的事情:
String s = "class MyClass implements IMath { public int add(int x, int y) { return x + y; }}";
IMath loadedClass = someThing.loadAndInitialize(string);
int result = loadedClass.add(5,6);
Run Code Online (Sandbox Code Playgroud)
现在显然,someThing.loadAndInitialize(string)- 部分是我不知道如何实现的部分.这甚至可能吗?或者更容易运行JavaScripts并以某种方式"给"变量/对象(如x和y)?
谢谢你的任何提示.