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

Java中如何重新初始化已预先声明为null的数组?

不需要删除原有初始声明,在现有代码基础上稍作修改即可实现需求。

你遇到的编译报错是因为重复声明同作用域内的同名变量。你已经在代码开头完成了userData的变量声明int[] userData = null;,后续给这个变量赋值时不需要再加类型前缀int[],加上就等于尝试在同一个作用域定义第二个叫userData的int数组变量,自然会触发Java的编译规则报错。

你只需要把你写的int[] userData = new int[userInput];去掉类型声明前缀,改成下面的写法即可:

userInput = scan.nextInt();
// 仅赋值,不重复声明变量
userData = new int[userInput];

补充完整的可运行示例,附带输入合法性校验避免负数组长度异常:

import java.util.Scanner;

public class DynamicArrayInit {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int userInput = -1;
        int[] userData = null;

        System.out.print("请输入数组长度:");
        userInput = scan.nextInt();
        if (userInput >= 0) {
            userData = new int[userInput];
            System.out.println("数组初始化完成,长度为:" + userData.length);
        } else {
            System.out.println("输入不合法,数组长度不能为负数");
        }
        scan.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:02