Java 使用GWT生成器修改现有类
我有一个类(例如District),它实现了两个方法:Java 使用GWT生成器修改现有类,java,reflection,gwt,code-generation,generator,Java,Reflection,Gwt,Code Generation,Generator,我有一个类(例如District),它实现了两个方法: public Object getAtribute(String name) { } public void setAtribute(String name, Object value){ } 一切都设置为在调用GWT.create(Dirstrict.class)时调用我的生成器 现在,我如何在同一个类中修改这些方法的实现(即在它们内部编写代码),以便District类中的最终代码如下所示: public Object getAtr
public Object getAtribute(String name) {
}
public void setAtribute(String name, Object value){
}
一切都设置为在调用GWT.create(Dirstrict.class)时调用我的生成器
现在,我如何在同一个类中修改这些方法的实现(即在它们内部编写代码),以便District类中的最终代码如下所示:
public Object getAtribute(String name) {
//The generated code
}
public void setAtribute(String name, Object value){
//The generated code
}
谢谢,您必须创建一个扩展com.google.gwt.core.ext.generator的生成器类,并告诉gwt编译器使用您的生成器生成District类 您的.gwt.xml
<generate-with class="my.package.DistrictGenerator">
<when-type-assignable
class="my.package.District"/>
</generate-with>
但首先,您应该考虑是否真的需要使用生成器,因为它会使代码更加复杂。您的生成器不会重写District
类的实现,而是使用不同的实现生成District
的子类。生成的子类将由GWT.create(District.class)
返回
一旦您生成的子类被编写出来,它将被编译成JavaScript,如果从未使用过,您最初的超类实现可能会被完全剥离,因此效果将是相同的