gpt4 book ai didi

java - GWT:处理 View 中的空请求工厂代理引用

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:45 25 4
gpt4 key购买 nike

我有一个显示用户帐户详细信息的 View 。相应的 Activity 通过 GWT 请求工厂询问服务器端代码(为了检索用户帐户对象)。 View 接口(interface)扩展了 TakesValue< T > 接口(interface),因此我的 ViewImpl< UserAccountProxy > 实现了 setValue(UserAccountProxy) 方法。正如预期的那样,该方法用于设置对当前将显示的对象的引用。

UserAccountProxy 有很多属性,因此它的代理引用了很多其他代理对象。所以,例如我们可以将:UserNameProxy、UserPasswordProxy、UserRolesProxy等封装在UserAccountProxy中。在某些情况下,几乎所有这些代理都可能为空(用户没有指定角色、用户没有头像、没有指定签名......)。另外,相应的 Activity 可能不会向请求工厂询问某些属性,然后这些属性也将为空。

如果这些属性(代理)中的任何一个不为空,则应使用适当的小部件将其显示在 View 中。

避免 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());
}
// (....)
}

当然,我想避免这种类型的编码,但我不知道如何以其他方式做到这一点。

预先感谢您的任何提示。

最佳答案

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

关于java - GWT:处理 View 中的空请求工厂代理引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com