动态类声明并实例化?

时间:2012-10-16 21:07:40

标签: java class dynamic

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注入属性。

还有什么想法吗?

2 个答案:

答案 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()"?

以上文章的答案演示了如何在运行时创建新实例。