boolean funkyBoolean = true;
int array[] = funkyBoolean ? {1,2,3} : {4,5,6};
但是这段代码甚至都不会编译。
这有什么解释吗? funkyBoolean ? {1,2,3} : {4,5,6}
不是有效的表达式吗?
谢谢你提前!
答案 0 :(得分:30)
您只能在非常有限的情况下使用{1, 2, 3}
语法,而这不是其中之一。试试这个:
int array[] = funkyBoolean ? new int[]{1,2,3} : new int[]{4,5,6};
顺便说一句,好的Java风格是将声明写成:
int[] array = ...
编辑:对于记录,{1, 2, 3}
如此受限制的原因是它的类型不明确。从理论上讲,它可能是一个整数,长整数,浮点数等数组。此外,JLS定义的Java语法禁止它,所以就是这样。
答案 1 :(得分:5)
boolean funkyBoolean = true;
int[] array = funkyBoolean ? new int[]{1,2,3} : new int[]{4,5,6};
答案 2 :(得分:3)