本帖最后由 张洪慊 于 2013-1-13 16:51 编辑
我看到条件表达式的时候为了弄清楚其结果类型,搜寻一下:
下面看条件表达式结果类型的规范中的核心三点:
1)如果第二个和第三个操作数具有相同的类型,那么它就是条件表达式的类型。换句话说,你可以通过绕过混合类型的计算来避免大麻烦。
2)果一个操作数的类型是T,T表示byte、short或char,而另一个操作数是一个int类型的常量表达式,它的值是可以用类型T表示的,那么条件表达式的类型就是T。
char ch='X';
System.out.println(true?ch:1);//X
3)否则,将对操作数类型运用二进制数字提升,而条件表达式的类型就是第二个和第三个操作数被提升之后的类型。
第三点 将对操作数类型运用二进制数字提升? 什么叫二进制数字提升?麻烦举例详细解释下
http://www.cnblogs.com/gw811/archive/2012/10/28/2743586.html 原文的链接~ 第三点没解释清楚- - |