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
相关产品推荐
相关产品推荐

