mar*_*igo 14 java arrays ternary-operator
我试过这样的事情:
boolean funkyBoolean = true;
int array[] = funkyBoolean ? {1,2,3} : {4,5,6};
但是这段代码甚至都不会编译.这有什么解释吗?是不是 funkyBoolean ? {1,2,3} : {4,5,6} 一个有效的表达?提前致谢!
Ste*_*n C 31
您只能{1, 2, 3}在非常有限的情况下使用语法,而这不是其中之一.试试这个:
int array[] = funkyBoolean ? new int[]{1,2,3} : new int[]{4,5,6};
Run Code Online (Sandbox Code Playgroud)
顺便说一下,好的Java风格是将声明写成:
int[] array = ...
Run Code Online (Sandbox Code Playgroud)
编辑:对于记录,{1, 2, 3}限制的原因是它的类型是模糊的.从理论上讲,它可能是一个整数,长整数,浮点数等数组.此外,JLS定义的Java语法禁止它,所以就是这样.
boolean funkyBoolean = true;
int[] array = funkyBoolean ? new int[]{1,2,3} : new int[]{4,5,6};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4592 次 |
| 最近记录: |