使用三元运算符初始化数组
2022-09-03 04:00:24
我尝试了这样的东西:
boolean funkyBoolean = true;
int array[] = funkyBoolean ? {1,2,3} : {4,5,6};
但是这段代码甚至不会编译。对此有什么解释吗?不是有效的表达式吗?提前致谢! funkyBoolean ? {1,2,3} : {4,5,6}
我尝试了这样的东西:
boolean funkyBoolean = true;
int array[] = funkyBoolean ? {1,2,3} : {4,5,6};
但是这段代码甚至不会编译。对此有什么解释吗?不是有效的表达式吗?提前致谢! funkyBoolean ? {1,2,3} : {4,5,6}
您只能在非常有限的情况下使用语法,这不是其中之一。试试这个:{1, 2, 3}
int array[] = funkyBoolean ? new int[]{1,2,3} : new int[]{4,5,6};
顺便说一句,好的Java风格是将声明编写为:
int[] array = ...
编辑:为了记录,如此受限制的原因是其类型不明确。从理论上讲,它可以是整数,多头,浮点数等的数组。此外,JLS定义的Java语法禁止它,所以就是这样。{1, 2, 3}
boolean funkyBoolean = true;
int[] array = funkyBoolean ? new int[]{1,2,3} : new int[]{4,5,6};