如果对空的对象进行操作,就会造成意外错误。所以我们在使用对象前,一般会进行非空判断,接下来介绍我知道的三种判断非空方法:
1、if判断
这个最直接,很多人应该都是这么用的
public class Main
{
public static void main(String[] args) {
Object obj=null;
if(obj!=null)
{
System.out.println("执行接下来的代码");
}
}
}
不必多言
2、Objects.requireNonNull(obj)
public class Main
{
public static void main(String[] args) {
Object obj=null;
Objects.requireNonNull(obj);
System.out.println("执行接下来代码");
}
}
我们将需要判断非空的对象传入Objects.requireNonNull()方法,如果此时对象为空,则会抛出一个NullPointerException异常,后面的代码就不会执行下去了,避免了非法操作。
3、断言 assert
public class Main
{
public static void main(String[] args) {
Object obj=null;
assert obj!=null;
System.out.println("执行接下来代码");
}
}
断言语句后面跟着一个表达式,如果表达式为true则继续往下执行,否则抛出一个AssertionError异常。
但是有的小伙伴执行这段代码可能不会报错,这是因为我们所用的开发环境并没有启动断言机制,所以没生效,我们需要添加一个JVM参数,叫做-ea。接下来我以IDEA为例说一下怎么添加JVM参数。
先打开如图设置
点击Modify options,确保Add VM options这一项打开着
然后我们在这一栏填上-ea,点ok保存就可以了。
这个-ea是干嘛的呢,它的意思就是启动断言机制。