创建含10个元素的String类型数组时输出null的问题排查
问题原因及修正方案
错误根源
你代码里的核心问题是覆盖了已初始化完成的数组:
- 你首先创建并初始化了一个包含10个有效字符串元素的数组:
String[] women = { "persian", "palestinian", "german", "russian", "spanish", "italian", "greek", "hungarian", "brazilian", "turkish" };
- 但紧接着执行的
women = new String[10];语句,会创建一个全新的、长度为10的String数组——Java中引用类型数组默认初始化时,所有元素都会被设为null,这直接覆盖了你之前赋值好的数组,所以最终打印women[8]会输出null。
修正方案
有两种可行的修正方式:
- 直接删除
women = new String[10];这行代码,保留最初的数组初始化语句,此时women[8]会输出你设定的brazilian。 - 若想通过
new String[10]创建数组,需手动为每个元素赋值,示例代码:
String[] women = new String[10]; women[0] = "persian"; women[1] = "palestinian"; women[2] = "german"; women[3] = "russian"; women[4] = "spanish"; women[5] = "italian"; women[6] = "greek"; women[7] = "hungarian"; women[8] = "brazilian"; women[9] = "turkish";
内容的提问来源于stack exchange,提问作者Leka
相关产品推荐
相关产品推荐

