在Java中对复合对象进行有效的空检查

六十树

程序将创建一个带有多个选项卡的JDialog面板。选项卡之一具有多个表。JTable的列宽可调。此选项卡是在不同条件下生成的。有时,从国家tabnull,有时标签存在,但tablenull有时用户尚未调整列的大小。

我在寻找一种方法来保存columnWidth值,如果用户调整了列的大小。在这种情况下,检查null似乎很麻烦:

jpanel.tab.table.width

我能找到的最好方法是:

if( jpanel!=null && 
    jpanel.jtab!=null &&
    jpanel.jtab.jtable!=null && ...

有没有更好的方法来执行此空检查?


我看到了这个问题:
C#中是否有一个等效于空合并运算符(??)的Java?

它没有列出解决方案,并且已经很旧了(Java 6-7时代)。我希望此功能在以后的版本中添加。

约翰尼斯

无法完全按照自己的意愿去做。但是,您可以将所有内容放入try语句中:

try { 
    myItem = bundle.category.subcategory.item;
} 
catch(NullpointerException ignored) {}

请注意,这看起来很骇人,而且编码实践也很差。就清晰度而言,当前的解决方案可能是最好的方法。


编辑:我尝试过发布另一个Anwser,但该按钮显示为灰色,因此我将其放在此处:

当您应该使用for循环时,感觉就像多次重复相同的代码

您确实可以使用for循环,但这会涉及反射和许多样板代码。想象这样的事情:

static boolean checkDeepNull(Object root, String... attributes) throws NoSuchFieldException, IllegalAccessException {
    Object currentAttribute = root;
    for(int attr = 0; currentAttribute != null && attr < attributes.length; attr++){
        Field nextField = currentAttribute.getClass().getField(attributes[attr]);
        Object nextAttribute = nextField.get(current);
        if(nextAttribute == null) return false;
        currentAttribute = nextAttribute;
    }
    return true;
}

如何使用它: if(checkDeepNull(bundle, "category", "subcategory", "item"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中检查有效的括号

Java:如何有效检查空指针

在Windows上的Java中检查文件是否为空的最有效方法

检查可选列表在java中是否有效

如何在Java中检查有效的URL?

检查Kerberos KeyTab文件在Java中是否有效

Java 11中的有效null检查

Java中的有效日期格式检查

PHP-在调用函数之前检查空对象的有效方法?

jQuery - 检查空输入有效,但只检查表中的第一行

在Java中对元组列表进行排序的有效方法

在Java中对图像进行有效的彩色循环

如何在Java8中进行迭代时有效检查其他条件?

在 Java 方法中传递对象参数的有效方法

检查未知对象中是否存在对象的最有效的Javascript方法

检查NestJS中的有效实例

如何将空检查提取到方法中并获得有效的空类型检查?

有效检查Python / numpy / pandas中是否有任意对象是NaN?

有效检查Python / numpy / pandas中是否有任意对象是NaN?

选择筛选器中的Mule JSON有效负载空值检查

查询对象中字段不为空的所有记录的有效方法

Java有效删除对象

有效地Java对象的列表里面比较检查地图

检查两个java对象的Deep Equal的最快,最有效的方法是什么?

如何检查有效载荷内部的空数组?

检查 PHP 7 中是否存在对象值的最有效方法

Python中检查对象属性是否分配了DataFrame的最有效方法?

如何在Objective-C中检查有效对象?

python:检查字节对象中前导零的有效方法