首页 > 编程知识 正文

java区块链开源代码,区块链java开源框架

时间:2023-05-06 08:24:09 阅读:60894 作者:432

小典典

捕获NullPointerException是一个非常有问题的事情,因为它几乎可以在任何地方完成。 从错误中获取错误,错误地捕捉它,并继续像一切都正常一样,非常简单,隐藏着真正的问题。 因为处理起来非常困难,所以最好完全避免。 例如,假设Integer自动打开空值的包装。 )

建议改为使用Optional类。 如果要使用hcdss存在或不存在的值,通常这是最好的方法。

你可以用它写代码,如下所示。

公共项目(wsws对象) {

返回选项. of nullable (ws object.get foo ()//Here you get Optional.empty ) ) if the Foo is null

. map(f-f.getbar )//hereyoutransformtheoptionalorgetemptyifthebarisnull

. map(B-B.getbaz ) )

. map(B-B.getint ) );

//addthisifyouwanttoreturnan-1 insteadofanemptyoptionalifanyisnull

//orelse(-1 );

//orthisifyouwanttothrowanexceptioninstead

//or else throw (someapplicationexception :3360 new;

}

为什么是可选的?

使用Optionals代替null中可能不存在的值,可以使读者非常清楚事实,不同类型的系统不会错误地忘记事实。

也可以访问更容易使用这些值的方法,如map和orElse。

缺席有效还是错误?

但是,还必须考虑中间方法返回null是否是有效的结果,或者这是否是错误的征兆。 如果始终是错误,则抛出异常可能比返回特殊值或向中间方法本身抛出异常更好。

可能有更多的选择吗?

另一方面,如果缺少中间方法的值仍然有效,Optional是否也可以将它们切换为s?

然后,你可以这样使用它们:

公共对象(wsws对象) {

返回ws object.get foo (

.平面图(f-f.get bar ) )

.平面图(B- b.get baz ) )

.平面图(B- b.getint ) );

}

为什么不选择呢?

我唯一可能不使用的理由选项是,它是否位于代码性能的关键部分,以及垃圾回收的开销是否是问题。 这是因为选项每次运行代码时都会分配一些对象,虚拟机可能无法对其进行优化。 在这种情况下,原始的if测试可能更好。

2020-03-22

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。