Java初学者求助:外部类二维List在主类打印为空如何解决?
问题分析与解决方案
常见问题原因
导致打印结果为空的核心原因通常有以下几种:
- 二维List未初始化:外部类A中的二维List成员变量仅声明但未实例化,调用
setA()时无法添加元素(甚至抛出空指针异常)。 - 未调用
setA()添加元素:Main类中实例化A后直接调用getA(),未先执行添加元素的操作。 setA()方法逻辑错误:未正确创建内层List就直接往外层List中添加元素,导致元素未被正确存入二维结构。
修正后的代码实现
外部类A的正确实现
import java.util.ArrayList; import java.util.List; class A { // 初始化二维List,避免null private List<List<String>> aList = new ArrayList<>(); // 返回二维List public List<List<String>> getA() { return aList; } // 添加元素到二维List:先创建内层List,再加入外层List public void setA(String element) { List<String> innerList = new ArrayList<>(); innerList.add(element); aList.add(innerList); } }
Main类的正确调用
public class Main { public static void main(String[] args) { A a = new A(); // 调用setA添加目标元素 a.setA("1+1"); a.setA("dog"); // 打印二维List内容 System.out.println(a.getA()); } }
运行结果
执行后会输出预期结果:[[1+1], [dog]]
内容的提问来源于stack exchange,提问作者캡틴코리아
相关产品推荐
相关产品推荐

