本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
*Java assert关键字有什么作用,什么时候应使用?
有哪些现实的例子可以理解断言的关键作用?
高分回答:
断言(通过assert关键字)是在Java 1.4中添加的。它们用于验证代码中不变式的正确性。切勿在生产代码中触发它们,并表示存在错误或滥用代码路径。可以在运行时通过命令-ea上的选项将其激活java,但默认情况下不会将其打开。
一个例子:
public Foo acquireFoo(int id) {
Foo result = null;
if (id > 50) {
result = fooService.read(id);
} else {
result = new Foo(id);
}
assert result != null;
return result;
}
高分回答:
假设您应该编写一个程序来控制核电站。很明显,即使是最轻微的错误也可能导致灾难性的结果,因此您的代码必须没有错误(假设出于参数考虑,JVM是没有错误的)。
Java不是可验证的语言,这意味着:您无法计算出您的操作结果将是完美的。这样做的主要原因是指针:它们可以指向任何地方或任何地方,因此无法计算出具有确切值的指针,至少不在合理的代码范围内。鉴于此问题,没有办法证明您的代码总体上是正确的。但是,您可以做的是证明您至少在发现每个错误时都会发现它。
这个想法是基于按合同设计(DbC)范式的:您首先(以数学精度)定义方法应该执行的操作,然后通过在实际执行过程中对其进行测试来进行验证
文章翻译自kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/2…
作者建议:在生产中,很多时候都会用到断言,特别是进行单元测试时。
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️