我正在研究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)
你的初始化语句是错误的:你必须添加方括号来声明一个数组(这里你可以省略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语言规范以获取更多详细信息.
使用以下语法声明/初始化和空数组,然后用数据填充它:
String[] menuArray = {};
menuArray = new String[]{"new item","item 2"};
Run Code Online (Sandbox Code Playgroud)