我为措词不佳表示歉意,但我想不出更好的措辞方式。这是我的代码(忽略类和主方法以及其他样板文件):
int i = 2;
int j = {9,88,777,6666}[i];
我希望j为777,但它拒绝编译。作为参考,这是我认为应该基本等效的另一种窃听器,并且确实有效。
int i = 2;
int[] arr ={9,88,777,6666};
int j = arr[i];
有没有办法像我第一个非工作示例那样在两行上做到这一点?
(我知道这几乎永远不是一个好主意,但是我正在做类似于codegolf的事情,看来应该可以以某种方式实现。)
答案 0 :(得分:5)
由于它不是简单的声明和赋值,因此您必须使用new
语法:
int j = new int[] {9,88,777,6666}[i];