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

Java打印教师列表所有值均为null的问题如何修复

问题原因
  • 程序初始化阶段过早添加了空对象:你在main方法启动时,刚实例化teachers对象(所有String类型字段默认值都是null),就立刻调用teach.add(new teacher(...))把空值封装的教师对象存入了列表,这行代码是完全多余的,相当于提前塞了一条全空的记录。
  • 输入信息后未同步添加到列表:你在case 1分支里获取用户输入的教师信息后,只是修改了全局teachers对象的属性,并没有把新的教师实例添加到teach列表中,列表里永远只有最开始那条空记录,打印自然全是null。
修复方法

第一步:删除多余的初始化添加代码

删掉main方法中List<teacher> teach = new ArrayList<>();下面的这行代码:

teach.add(new teacher(teachers.first_name, teachers.last_name, teachers.teacher_id, teachers.course));

第二步:在输入完成后添加对象到列表

在case 1的最后(用户输入完所有教师字段的代码后面),添加下面这行代码:

teach.add(new teacher(teachers.first_name, teachers.last_name, teachers.teacher_id, teachers.course));

可选优化建议(符合Java开发规范)

  • 类名遵循大驼峰命名规则,将teacher类改名为Teacher,student类改名为Student
  • 类的属性设置为私有,新增对应的setter方法,不要直接用public属性赋值,降低耦合
  • 学生功能模块存在和教师模块完全相同的逻辑问题,后续开发学生功能时参考上面的方法修改即可
报错截图

报错截图

内容的提问来源于stack exchange,提问作者J.R. BEATS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:45:03