【问题标题】:Modifying an existing class with GWT generator使用 GWT 生成器修改现有类
【发布时间】:2011-05-22 05:40:56
【问题描述】:

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

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
}

谢谢,

【问题讨论】:

    标签: java reflection gwt code-generation generator


    【解决方案1】:

    您的生成器不会重写 District 类的实现,它将生成具有不同实现的District子类。生成的子类将由GWT.create(District.class) 返回。

    一旦您生成的子类编写完成,它将被编译为 JavaScript,如果从未使用过,您的原始超类实现可能会被完全剥离,因此效果将是相同的。

    【讨论】:

      【解决方案2】:

      您必须创建一个扩展 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>
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-28
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        • 2020-03-26
        相关资源
        最近更新 更多