这里不允许使用Android,Java数组初始值设定项

Abd*_*mon 33 java arrays

我正在研究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};
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢任何解决方案,但如果您能解释这里发生了什么,我将不胜感激

Jay*_*nth 78

你应该用

pos = new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)

您只能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
Run Code Online (Sandbox Code Playgroud)


Rob*_*ume 9

你的初始化语句是错误的:你必须添加方括号来声明一个数组(这里你可以省略new关键字,因为你同时声明和初始化变量):

int[] pos = { 0, 1, 2 };
Run Code Online (Sandbox Code Playgroud)

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

pos = new int[] { 2, 1, 0 };
Run Code Online (Sandbox Code Playgroud)

您可以阅读Oracle文档Java语言规范以获取更多详细信息.


Sai*_*i N 5

使用以下语法声明/初始化和空数组,然后用数据填充它:

String[] menuArray = {};
menuArray = new String[]{"new item","item 2"};
Run Code Online (Sandbox Code Playgroud)