java中是否可以在运行时声明并实例化一个类?
我正在尝试关注代码:
public static void t4() {
Object o = new Object() {
private String uid = "1";
private String name = "2";
public String getName() {
return name;
}
public String getUid() {
return uid;
}
public void setName(String name) {
this.name = name;
}
public void setUid(String uid) {
this.uid = uid;
}
@Override
public String toString() {
return uid + " " + name;
}
};
但是,我希望使用反射来实现这一点,因为我将从xml源向pojo注入属性。
还有什么想法吗?
答案 0 :(得分:1)
在某种程度上,可以使用来自String对象的JDK6.0的Java编译器API动态编译一个类(保存代码)。
http://www.java2s.com/Code/Java/JDK-6/CompilingfromMemory.htm请参阅此处。
该代码还向您展示了如何从类文件(使用Class.forName())方法动态实例化“新编译的”类。
答案 1 :(得分:1)
此外,互联网上有答案...... 在这里你去一个
What is the difference between "Class.forName()" and "Class.forName().newInstance()"?
以上文章的答案演示了如何在运行时创建新实例。