1

我有一系列模型,每个模型都有一些属性,生成器使用这些属性自动生成 getter/setter(因为其中包含一些与默认值相关的逻辑,我不打算为具有20 奇数场)。

当我实例化模型时,我使用GWT.create(...),但有时我有引用我的模型的类,而这些类不知道 setter/getter 存在,因为它们是生成的。

例如,我有我的模型:

public class MyModel extends AbstractModel {
    private Integer uid;
    private String name;
    // ...
}

public interface JsonBinder<MyModel> {
    public void bindDataToMode(MyModel model, JSONWrapper json);
}

nowJsonBinder<T>也是使用生成的类GWT.create,但它指的是MyModel而不是生成的MyModelImpl。因此,在编译时我会收到类似setUid(Integer value) is not defined for class MyModel.

有没有办法让编译器替换MyModelwith的所有用途MyModelImpl

这适用于泛型和方法参数、返回类型等。

4

1 回答 1

0

不。

在您的具体情况下,我宁愿生成MyModelImpl等。预先,使用您想要的任何代码生成器(包括,例如,注释处理器),然后直接针对生成的类进行编码。

于 2013-07-22T10:41:56.587 回答