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

使用Java Scanner向空对象赋值读取属性返回null问题求助

问题原因

你调用无参构造方法创建sr2实例后,仅将Scanner读取到的用户输入存储在了局部变量setFirstName中,没有调用StudentRecord类中定义的setter方法将输入值绑定到sr2的对应成员属性上。无参构造初始化的对象所有未赋值的引用类型属性默认值为null,因此调用sr2.getFirstName()时返回的就是null值。

修复方法

在读取到用户输入后,调用对应setter方法完成赋值即可,修改后的代码片段如下:

StudentRecord sr2 = new StudentRecord();
Scanner userInput = new Scanner (System.in);
System.out.println("Please Enter Student's First Name: ");
String inputFirstName = userInput.nextLine();
// 调用setter方法将输入值绑定到sr2对象的firstName属性
sr2.setFirstName(inputFirstName);

System.out.println("New Student First Name: " + sr2.getFirstName());

如果需要录入学生的姓氏、学号、成绩等其他属性,按照相同逻辑读取用户输入后,调用对应的setLastName()、setStudentID()、setGradeCourseOne()方法赋值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:48:03