Java GWT:处理视图中的null请求工厂代理引用

Java GWT:处理视图中的null请求工厂代理引用,java,gwt,view,mvp,Java,Gwt,View,Mvp,我有一个显示用户帐户详细信息的视图。相应的活动通过GWT请求工厂请求服务器端代码(以便检索用户帐户对象)。视图接口扩展了TakesValue接口,因此我的ViewImpl实现了setValue(UserAccountProxy)方法。 按照预期,此方法用于设置对当前将显示的对象的引用 UserAccountProxy具有许多属性,因此其代理引用了许多其他代理对象。例如,我们可以将UserNameProxy、UserPasswordProxy、UserRolesProxy等封装在UserAccou

我有一个显示用户帐户详细信息的视图。相应的活动通过GWT请求工厂请求服务器端代码(以便检索用户帐户对象)。视图接口扩展了TakesValue接口,因此我的ViewImpl实现了setValue(UserAccountProxy)方法。 按照预期,此方法用于设置对当前将显示的对象的引用

UserAccountProxy具有许多属性,因此其代理引用了许多其他代理对象。例如,我们可以将UserNameProxy、UserPasswordProxy、UserRolesProxy等封装在UserAccountProxy中。 在某些情况下,几乎所有这些代理都可能为空(用户没有指定角色,用户没有化身,没有指定签名…)。 此外,相应的活动可能不会向请求工厂请求部分属性,然后,这些属性也可能为null

如果这些属性(代理)中的任何一个不为null,那么应该使用适当的小部件在视图中显示它

避免NullPointerException的最简单也是最丑陋的方法如下:

public void setValue(UserAccountProxy account) {
   //getUserName() returns proxy which may be null
   if (account.getUserName() != null) { 
     setUserNameWidget(account.getUserName());
   }
   //getUserPassword() returns proxy which may be null
   if (account.getUserPassword() != null) {
     setUserPasswordWidget(account.getUserPassword());
   }
   // (....)
}
当然,我想避免这种类型的编码,但我不知道如何用另一种方式来做


提前感谢您的提示。

可以减少将数据模型和UI绑定在一起所需编写的粘合代码量。有一种类型将RequestFactory特定的功能添加到编辑器框架中。使用适配器将允许可空属性控制是否创建或丢弃相应的小部件。

可以减少将数据模型和UI绑定在一起所需编写的粘合代码量。有一种类型将RequestFactory特定的功能添加到编辑器框架中。适配器的使用将允许可空属性控制是否创建或丢弃相应的小部件。

您能给我一个如何使用OptionalFieldEditor的示例,因为我找不到任何好的示例吗?您能给我一个如何使用OptionalFieldEditor的示例,因为我找不到任何好的示例吗?