-- Start
断言通常只用在开发和测试阶段, 用来表示致命的, 不可恢复的错误, 尤其是用在单元测试的时候.
assert 条件 assert 条件:表达式断言将对条件进行判断, 如果条件是 false 则抛出 AssertionError 异常, 如果采用第二种形式, 表达式将被用来构造 AssertionError 异常.
默认情况下, 断言是禁用的, 这意味着程序不会运行包含断言的行, 可以在运行程序时用 -ea 或 -enableassertions 选项来启用断言, 我们也可以只启用或禁用某几个类或某几个包的断言, 具体形式如下
java -ea[:<packagename>...|:<classname>] java -enableassertions[:<packagename>...|:<classname>] java -da[:<packagename>...|:<classname>] java -disableassertions[:<packagename>...|:<classname>]
java -esa 或 java -enablesystemassertions java -dsa 或 -disablesystemassertions
在Eclipse中我们可以通过下面的方法来启用或禁用断言
1. 全局设置 Window-->Preferences-->Java-->Installed JREs 选择当前JDK,点击 Edit,在 Default VM Arguments 中输入 -ea 或 -enableassertions 2. 当前运行的程序 Run-->RunConfigurations,选择当前程序, 进入Arguments标签页,在VM arguments 中输入 -ea 或 -enableassertions
setDefaultAssertionStatus -- 用于启用或禁用断言 setPackageAssertionStatus -- 用于启用或禁用某些包中的断言 setClassAssertionStatus -- 用于启用或禁用某些类中的断言 clearAssertionStatus -- 用于关闭断言
public class Test { public static void main(String[] args) throws Exception { // 单元测试 Person p = new Person(); p.setName("尚波"); assert "尚波".equals(p.getName()); } } class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }