此处不允许使用数组初始值设定项

2022-09-01 01:49:02

我正在开发Android项目,我收到一个我无法理解的错误:

此处不允许使用数组初始值设定项

我试图简化我的代码,它归结为这个

public class MainActivity extends Activity{

    int pos = {0, 1, 2};

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        pos = {2, 1, 0};
    }
}

这是怎么回事?


答案 1

您应该使用

pos = new int[]{1,2,3};

只能在变量初始化时使用缩写语法。int[] pos = {0,1,2};

private int[] values1 = new int[]{1,2,3,4};
private int[] values2 = {1,2,3,4}; // short form is allowed only at variable initialization

答案 2

初始化语句错误:必须添加方括号才能声明数组(在这里您可以省略关键字,因为您同时声明和初始化变量):new

int[] pos = { 0, 1, 2 };

onCreate 方法中,您无法省略 new 关键字,因为变量已声明,因此必须编写:

pos = new int[] { 2, 1, 0 };

您可以阅读 Oracle 文档Java 语言规范以了解更多详细信息。