You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java函数用数组初始化器报Array constants can only be used in initializers错如何解决

报错原因

Array constants can only be used in initializers 报错的核心原因是Java语法规定:{...} 格式的数组常量仅支持在声明数组变量的同时完成初始化操作,不可在后续对已声明的数组变量单独赋值时直接使用该写法。

修复方案

你只需要在赋值数组的时候补全 new int[] 声明即可。同时你原来代码中提前创建的 new int[5] 属于无效创建,后续赋值会直接覆盖该数组对象,属于冗余代码可以删除,修正后的完整代码如下:

public class ArrayExample{  
    
    public static void main(String args[]){        
        int number = 0;
        int[] newArray = getValues(number);
    }
    
    public static int[] getValues(int number) {
        int[] testArray;
        if(number == 0) {
            testArray  = new int[]{1,2,3,4,5}; 
        }
        else if(number == 1) {
            testArray  = new int[]{2,3,4,5,6}; 
        }
        else if(number == 2) {
            testArray  = new int[]{3,4,5,6,7}; 
        }
        else if(number == 3) {
            testArray  = new int[]{4,5,6,7,8}; 
        }       
        else{
            testArray  = new int[]{5,6,7,8,9}; 
        }   
        return testArray;
    }
}
可选优化方案

你当前的数组取值逻辑符合固定偏移规律,也可以直接通过循环生成,减少重复代码:

public static int[] getValues(int number) {
    int[] testArray = new int[5];
    int start = number + 1;
    for (int i = 0; i < 5; i++) {
        testArray[i] = start + i;
    }
    return testArray;
}

内容的提问来源于stack exchange,提问作者user6210457

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:24:03