为了账号安全,请及时绑定邮箱和手机立即绑定

这里的students.get(ID).name可以替换成st.name吗?为啥?

Student st=students.get(ID);
    if(st==null){
	/**
	* 提示输入学生姓名,并创建对象保存学生的ID和姓名,
	* 将其添加到集合students中
	 */
	System.out.println("请输入学生姓名:");
	String name= input.next();
        //创建新的学生对象
	Student newStudent=new Student(ID,name);
        //通过调用students的put方法,添加ID-学生映射关系
	students.put(ID, newStudent);
	System.out.println("成功添加学生:"+students.get(ID).name);


正在回答

2 回答

既然知道了,求采纳

0 回复 有任何疑惑可以回复我~

我的想法是:get(ID)返回的那个value值是Student类型的对象st,而Student的构造器中也规定了参数name,那就应该可以使用st.name来调用啊,但是为啥编译器提示错误了呢?

0 回复 有任何疑惑可以回复我~
#1

没有梦想的咸魚 提问者

懂了。。原来是因为刚刚的那个st是添加之前的对象,这样的话st.name肯定是会报错的,因为st==null;解决方法是:在输出函数前重新调用一下Map的get方法就行了;例如加上一句:Student st2= students.get(ID);这样就ok了@-@
2017-02-18 回复 有任何疑惑可以回复我~
#2

嗨喽嗨喽 回复 没有梦想的咸魚 提问者

为什么是因为st==null就会报错??
2017-07-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这里的students.get(ID).name可以替换成st.name吗?为啥?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信