使用GWT生成器修改现有类

时间:2010-12-08 13:24:44

标签: java reflection gwt code-generation generator

我有一个实现两个方法的类(例如District):

public Object getAtribute(String name) {

}
public void setAtribute(String name, Object value){

}

当调用GWT.create(Dirstrict.class)时,一切都设置为调用我的Generator。

现在我如何在同一个类中修改这些方法的实现(即在其中编写代码),以便区类中的最终代码如下:

public Object getAtribute(String name) {
   //The generated code
}
public void setAtribute(String name, Object value){
   //The generated code
}

谢谢,

2 个答案:

答案 0 :(得分:1)

您的生成器不会重写 District类的实现,它将生成District子类实现。生成的子类是GWT.create(District.class)将返回的内容。

一旦编写了生成的子类,它就会被编译成JavaScript,如果它从未被使用过,你的原始超类实现可能会被彻底删除,所以效果会相同。

答案 1 :(得分:0)

您必须创建一个扩展com.google.gwt.core.ext.Generator的生成器类,并告诉gwt编译器使用您的生成器来生成District类。

your.gwt.xml

<generate-with class="my.package.DistrictGenerator">
    <when-type-assignable
    class="my.package.District"/>
</generate-with>

但首先你要考虑是否真的需要使用生成器,因为它会使代码更复杂。