在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!)。
如何开启断言?
在项目的run按钮旁找到run/debug configuration,设置JUnit的vm options为-ea

有关断言的更多参数:
-ea java -ea 打开所有用户类的assertion -da java -da 关闭所有用户类的assertion -ea: java -ea:MyClass1 打开MyClass1的assertion -da: java -da: MyClass1 关闭MyClass1的assertion -ea: java -ea:pkg1 打开pkg1包的assertion -da: java -da:pkg1 关闭pkg1包的assertion -ea:... java -ea:... 打开缺省包(无名包)的assertion -da:... java -da:... 关闭缺省包(无名包)的assertion -ea:... java -ea:pkg1... 打开pkg1包和其子包的assertion -da:... java -da:pkg1... 关闭pkg1包和其子包的assertion -esa java -esa 打开系统类的assertion -dsa java -dsa 关闭系统类的assertion
综合使用 java -dsa:MyClass1:pkg1 关闭MyClass1和pkg1包的assertion
1、assert <boolean表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
2、assert <boolean表达式> : <错误信息表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>。
例如:
class="prettyprint linenums"> assert fab != null:"fab为空";
fab.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
});
如果fab 不等于空,则程序继续执行;
如果fab等于空,则会执行 fab为空;
参考:程序园 【Android】关于Android Studio 开启断言assert
“熔 岩” 博客 Java陷阱之assert关键字