使用 commons-beanutils 访问嵌套 bean 时,有什么方法可以防止 NPE?
这是我的代码:

new BeanUtilsBean().getProperty(human, "parent.name");

在这种情况下,我希望 getProperty()human.getParent() == null 时返回空字符串 ("") 或以不同于抛出 NPE 的方式处理它。

最佳答案

他们正在考虑 JDK7 的 adding 语言特性,但是 ultimately they weren't added

现在你必须手动检查。你可以破解它并创建一个函数

public static void propertyHack(Object bean, String property, String nullreplace){
  try{
    return new BeanUtilsBean().getProperty(bean, property);
  }
  catch(NullPointerException npe){
    return nullreplace;
  }
}

有点糟糕,但它会起作用。

关于java - 如何在访问 bean 的嵌套/索引属性时防止 NPE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2753218/

10-12 05:14