zoukankan      html  css  js  c++  java
  • 三目运算符引发的一次事故

     
    public class Test {
        public static void main(String[] args) throws Exception {
                 String r4="111";
                String r3="222";
                Object [] row=new Object[]{r4,r3};
                Object ts=row[1]==null?"无":row[1];
                System.out.println("aa"+ts+"bb");
                System.out.println("aa"+row[1]==null?"无":row[1]+"bb");
        }
    }

    发现页面没有按预期结果输出,检查发现后台的运算结果与预期不符,便于理解简化为上述代码形式

    上述运算结果

    aa222bb
    222bb

    不一致原因:二目运算符==与三目运算符?的优先级小于+,造成了实际运算如下

     System.out.println("aa"+row[1]==null?"无":row[1]+"bb");

    所以正确做法是在三目运算符处加上括号

    System.out.println("aa"+(row[1]==null?"无":row[1])+"bb");
  • 相关阅读:
    Python Virtualenv的使用
    Pycharm常用的设置
    Zabbix学习目录
    DELL R740 Raid10与U盘启动项的配置
    Django
    Django
    Django
    Django
    Django
    Django
  • 原文地址:https://www.cnblogs.com/yanan7890/p/9172228.html
Copyright © 2011-2022 走看看