如何从String执行Java代码?

时间:2015-10-08 21:38:54

标签: java

我在Super类中有很多字段,这就是为什么我想使用反射来从超级初始化子对象

在子类中我有

public class Bot_PageTrack extends PageTrack {
    public Bot_PageTrack(PageTrack pt) {
        for (Field field : PageTrack.class.getDeclaredFields()) {
            String code = "this." + field + " = " + "pt." + field;
            //HOW DO I EXECUTE THIS CODE??????????
        }
    }
}

1 个答案:

答案 0 :(得分:0)

嗯,你说的是:用反射:

class Bot_PageTrack extends PageTrack {
    public Bot_PageTrack(PageTrack pt) {
        for (Field field : PageTrack.class.getDeclaredFields()) {
            // this.field = pt.field
            try {
                field.set(this, field.get(pt));
            } catch (IllegalAccessException e) {
                throw new IllegalAccessError(e.getMessage());
            }
        }
    }
}

当然,这只适用于从另一个 PageTrack对象进行复制,而不是您自己的超类,因为您已经拥有了这些对象。

相关问题