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

新手上路,请多包涵

我正在开发 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};
    }
}

这里发生了什么?

原文由 Abdurakhmon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

你应该使用

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

原文由 Jayanth 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

onCreate 方法中不能省略 new 关键字,因为变量已经声明了,所以要这样写:

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

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

原文由 Robert Hume 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题