三目运算符语法
expression1 ? expression2 : expression3
Java虚拟机在编译三目运算时是以 “?” 和 “:” 来判断各位置的代码充当的结构。“?”前作为一部分,“?”和“:”中间作为一部分,“:”后作为一部分 。
a. business = null != model ? model.getBu() : ""; 这句,三目运算符的优先级要高于赋值预算,所以先运算三目预算
b. int temp = 0 < 1 ? c = c + 1 : d = d + 1 , 无法编译通过,三目运算符号优先级高, 实际会被解析成 int temp = (0 < 1 ? c = c + 1 : d) = d + 1 , 导致编译错误。三目运算符的性能比if-else结构要稍微高一点,但是在日常程序开发中几乎可以忽略不计
三目运算符写出的代码相对比较简介,但是相对易读性会有所损失
三目运算符会有类型转换&自动拆箱等问题一般都是默认转换为高精度类型
a. 精度由低到高: byte<short<char<int<float<double
b. 封装数据类型使用时一定要注意,务必要做”非空判断“ & 统一三目运算过程中的数据类型
参考:http://blog.csdn.net/tiwerbao/article/details/34244139
http://blog.csdn.net/u011983531/article/details/49227305