GWT RequestFactory:仅限setter字段的IllegalArgumentException

时间:2014-06-22 21:58:11

标签: gwt requestfactory

为什么在RF代理接口中同时拥有字段的getter和setter是强制性的?对于某些字段(如纯文本密码),您只需要设置setter。 e.g。

@ProxyFor(value = User.class)
public interface UserProxy extends ValueProxy {
    void setPassword(String password);
}

用户类同时包含getter和setter。

public class User implements Serializable {

private String password;

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

当我在代理上设置密码时,我收到IllegalArgumentException:

UserProxy user = userRequest.create(UserProxy.class);
user.setPassword("abc")

以上代码会导致以下错误: java.lang.IllegalArgumentException:密码     在com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.doCoderFor(AutoBeanCodexImpl.java:525)     在com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.setProperty(AbstractAutoBean.java:276) ... ...

如果我添加一个' getPassword()'此错误就会消失。 UserProxy接口中的方法但是失败了。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

AFAIK你可以getter没有setter而不是相反。

请参阅here和此issue