java – 使用NullPointerException来测试null是不好的风格吗?
发布时间:2020-12-14 05:30:32 所属栏目:Java 来源:网络整理
导读:我有一些代码沿着以下模式: return a().b().c().d().e(); 现在由于这些方法中的每一个都可以返回null,所以通常会测试一下: if( (a()!=null) (a().b() != null) ....) { return a().b().c().d().e();} else { return null;} (并且可能使用一些局部变量来避
我有一些代码沿着以下模式:
return a().b().c().d().e(); 现在由于这些方法中的每一个都可以返回null,所以通常会测试一下: if( (a()!=null) && (a().b() != null) && ....) { return a().b().c().d().e(); } else { return null; } (并且可能使用一些局部变量来避免重复调用) 我很想做: try { return a().b().c().d().e(); } catch (NullPointerException e) { return null; } 这被认为是坏的风格吗?效率低下?还是挺好的 解决方法
不要这样做与基本空值检查相比,投掷和捕获异常相当昂贵.
您可能还有兴趣知道,为未来版本的Java提出了这种语法,这将使此更简单.它会这样的: a()?.b()?.c()?.d() “?”操作将是“.”的可选版本.操作符.如果LHS为空,那么它将返回null,而不是尝试评估RHS.正是你正在寻找,但我恐怕没有为Java 7削减.不知道Java 8的这个功能的状态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |