Java assert关键字有什么作用,什么时候应使用?| Java Debug 笔记

133 阅读2分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

*Java assert关键字有什么作用,什么时候应使用?

有哪些现实的例子可以理解断言的关键作用?

高分回答:

很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}

断言(通过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…

作者建议:在生产中,很多时候都会用到断言,特别是进行单元测试时。

欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}

有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️