描述:
有一个变量flag, 它的取值从其他地方传的参数获取而来,
我们用 类似dict.getBoolean(“flag”) 的方法获取,
该方法正常情况下会返回 true或者 false 的布尔值,但是有个坑:
实际上当不传参数的时候,该方法返回一个 null, 直接赋值给flag会报空指针异常;
另外,flag变量 之后可能会被用在异步的线程中,这里会把它设置为final,也就是只能赋值一次
(通过 new Runnable() {} 来起一个线程,也就是说主类的flag变量会被用内内部类里,需要使用final修饰)
基于这样的前提,
在既需要有判断,又只能赋值一次的情况下,应该用三元运算符:
比如:
final boolean flag = (null == dict.getBoolean(“false”, false)) ? false
: dict.getBoolean(“false”, false);