在GXT 3.0,valueProvider中,我有一个空指针异常问题。我有这个代码片段,
@Path("xxx.yyy")
ValueProvider<User, String> zzz();
我使用这样的 ValueProvider,在这种情况下,如果 xxx 或 yyy 为空,我只是得到了空指针异常。在我的实现中,yyy 或 xxx 可能是空的,但是,我希望,如果它是空的,只是不显示它或显示为空。
在我的实现中,我几乎在任何地方都使用这个价值提供者,所以我需要找到一个明智的解决方案,以免我的代码变得混乱。
感谢您的任何帮助。
我看到 2 个解决方案:
- 您可以在对象上添加一个假的 getter
getZzz()
,并使其准确返回您想要显示的内容: - 您可以给出价值提供者的实现。
例:
ValueProvider<User, String> zzz = new ValueProvider<User, String>() {
@Override
public String getValue(User user) {
if(user.getXxx() == null | user.getXxx().getYyy() == null) {
return "";
}
return object.getXxx().getYyy();
}
@Override
public void setValue(User object, String value) {}
@Override
public String getPath() {
return "xxx.yyy";
}
}