我正在初始化一个数组,如下所示:

public class Array {

    int data[] = new int[10]; 
    /** Creates a new instance of Array */
    public Array() {
        data[10] = {10,20,30,40,50,60,71,80,90,91};
    }     
}

NetBeans指向这一行的错误:

data[10] = {10,20,30,40,50,60,71,80,90,91};

我怎样才能解决这个问题?

推荐答案

data[10] = {10,20,30,40,50,60,71,80,90,91};

以上内容不正确(语法错误).这意味着您正在将一个数组分配给data[10],该数组只能容纳一个元素.

如果要初始化数组,请try 使用Array Initializer:

int[] data = {10,20,30,40,50,60,71,80,90,91};

// or

int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};

请注意这两个声明之间的差异.将新数组赋给已声明的变量时,必须使用new.

即使您更正了语法,访问data[10]仍然是不正确的(您只能访问data[0]data[9],因为Java中的数组索引是从0开始的).进入data[10]会抛出ArrayIndexOutOfBoundsException分.

Java相关问答推荐

是否有一种格式模式,可以在除0之外的数字前面有正负符号?

CriteriaQuery with max

Java自定义ThreadPool—暂停任务提交并取消当前排队任务

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

Java Swing:初始化身份验证类后未检测到ATM_Interface键事件

与不同顺序的组进行匹配,不重复组但分开

如何在Java记录中设置BigDecimal类型属性的精度?

尽管通过中断请求线程死亡,但线程仍将继续存在

将PNG转换为位图自定义十六进制字符串

JNI:将代码打包成自包含的二进制文件

来自外部模块的方面(对于Java+Gradle项目)不起作用

将ByteBuffer异步写入InputStream或Channel或类似对象

无法使用Java PreparedStatement在SQLite中的日期之间获取结果

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

如何将RESTAssured';S的Http标题转换为<;字符串、字符串和>的映射?

在输入端没有可行的替代方案'; Select *';

@此处不能应用可为null的批注

使用DynamoDB增强客户端时未更新属性

将天数添加到ZonedDateTime不会更改时间

UuidGenerator Bean 类型不匹配?