三元表达式

java三元条件表达式的特性,当第二个和第三个表达式中有一个是基本数据类型的封装类(比如Integer),而另一个是基本数据类型,刚好第一个选择条件是选择封装类这个表达式的话,那么就会进行强制拆包成其对应的基本数据类型(比如int),null.intValue()就NullPointerException了

System.out.println(true ? null : 0);  //null
		
System.out.println(true ? null : new Integer(0));  //null
		
System.out.println(true ? (Integer)null : 0); //NullPointerException
		
System.out.println(true ? (Integer) null : new Integer(0));  //null

你可能感兴趣的:(三元表达式)