我偶然发现过这件事.
这是一个正常的表达方式
int a = 5;
System.out.println(((a < 5) ? 0 : 9));
所以这只是打印9作为int.现在如果我把第一个值而不是int 0
int a = 5;
System.out.println(((a < 5) ? "asd" : 9));
这里值9打印为字符串而不是int.要确认这一点,只需尝试使用另一个整数添加它
int a = 5;
System.out.println((((a < 5) ? 0 : 9) + 4) );
现在这导致13,但是如果将第一个值更改为字符串而不是int 0,则会产生编译错误
"The operator + is undefined for the argument type(s) Object&Serializable&Comparable>,int".
我对这个编译错误很困惑.这背后究竟是什么?谢谢你的解释
最佳答案