专业的JAVA编程教程与资源

网站首页 > java教程 正文

java 核心技术-12版 卷Ⅰ- 7.4.4 使用断言提供假设文档

temp10 2024-11-05 11:53:16 java教程 18 ℃ 0 评论

原文

7.4.4 使用断言提供假设文档

通富,很多程序员使用注释来提供底层假设的文档。考虑 http://docs.oracle.com/javase/8docs/technotes/guides/language/assert.html 上的一个示例:

if(i % 3 ==0) 
  ...
else if (i %3 ==1)
  ...
else if(i %3 ==2)
     // ...

在这种情况下,使用断言会更合适

java 核心技术-12版 卷Ⅰ- 7.4.4 使用断言提供假设文档

if(i % 3 ==0) 
  ...
else if (i %3 ==1)
  ...
else 
  assert i %3 ==2;
	...

当然,更好的做法是全面地考虑这个问题。i%3 的值会是什么?如果 i是正值,那么余数肯定是 0、1或2。如果 i是负值,余数可以是-1和 -2。因此,真正的假设是i 是非负值。最好是在 if 语句之前使用以下断言:

assert i >= 0;

无论如何,这个示例说明了程序员应该充分使用断言来进行自我检查。你会看到,断言是一种用于测试和调试的战术性工具;与之不同,日志是一种用于程序整个生命周期的战略性工具。下一节将介绍日志。

java.lang.ClassLoader 1.0

  • void setDefaultAssertionStatus(boolean b) 1.4 为通过这个类加载器加载的所有类(没有显式的类或包断言状态)启用或禁用断言
  • void setClassAssertionStatus(String className, boolean b) 1.4 为给定的类和它的内部类启用或禁用断言。
  • void setPackageAssertionStatus(String packageName, boolean b) 1.4 为给定包及其子包中的所有类启用或禁用断言。
  • void clearAssertionStatus() 1.4 删除所有显式的类和包断言状态设置,并禁用通过这个类加载器加载的所有类的断言。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表