亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教運行后提示Exception in thread "main" java.lang.NullPointerException

請教運行后提示Exception in thread "main" java.lang.NullPointerException

慕無忌1213685 2016-05-25 16:31:25
package com.imooc.collection;import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Set;public class MapTest { /** * 用來承裝學生類型對象 */ public Map<String,Student> students; /* * 在構造器中初始化students屬性 */ public void MapTest(){ this.students = new HashMap<String,Student>(); } /* * 測試添加:輸入學生ID,判斷是否被占用,若未被占用,則輸入學生姓名, * 創建新學生對象,并且添加到students中 */ public void tsetPut(){ //創建一個Scanner對象,用來獲取輸入的學生ID和姓名 Scanner console = new Scanner(System.in); int i = 0; while(i<3){ System.out.println("請輸入學生ID:"); String ID = console.next(); //判斷該ID是否被占用 Student st = students.get(ID); if(st == null){ //提示輸入學生姓名 System.out.println("請輸入學生姓名:"); String name = console.next(); //創建新的學生對象 Student newStudent = new Student(ID,name); //通過students的put方法,添加ID-學生映射 students.put(ID, newStudent);// System.out.println("成功添加學生:"+students.values()); System.out.println("成功添加學生:"+students.get(ID).name); i++; }else{ System.out.println("該學生ID已被占用!"); continue; } } } /* * 測試Map的keySet方法 */ public void testKeySet(){ //通過keyset方法,返回Map中的所有“鍵”的Set集合 Set<String> keySet = students.keySet(); //取得students的容量 System.out.println("總共有" + students.size() + "個學生!"); //遍歷keySet取得每一個鍵,再調用get()方法取得每個鍵對應的value for(String stuId:keySet){ Student st = students.get(stuId); if(st != null){ System.out.println("學生:" + st.name); } } } public static void main(String[] args) { MapTest mt = new MapTest(); mt.tsetPut(); mt.testKeySet(); }}
查看完整描述

13 回答

已采納
?
陌顏enjoy

TA貢獻1條經驗 獲得超2個贊

你所說的那個構造器的問題,你寫的是一般函數哪里是什么構造器,當然不會執行里面的那句都沒有調用

查看完整回答
2 反對 回復 2016-05-26
?
慕粉1463556065

TA貢獻1條經驗 獲得超1個贊

再說詳細一點..

查看完整回答
1 反對 回復 2016-07-11
?
快過來讓我看看

TA貢獻4條經驗 獲得超2個贊

完整代碼貼上來啊,目前看來應該是students沒有實例化

查看完整回答
1 反對 回復 2016-05-25
?
來自星星的我風格很好奇gfcccbv

TA貢獻1條經驗 獲得超0個贊

確實有問題

查看完整回答
反對 回復 2016-07-11
?
說好的幸福626

TA貢獻11條經驗 獲得超1個贊

。。。。

查看完整回答
反對 回復 2016-07-11
?
Aaaa64

TA貢獻9條經驗 獲得超0個贊

應該是main方法里的問題

查看完整回答
反對 回復 2016-07-11
?
朵朵熙熙丶

TA貢獻21條經驗 獲得超9個贊

應該是main方法

查看完整回答
反對 回復 2016-07-11
?
相敬如賓

TA貢獻3條經驗 獲得超1個贊

http://img1.sycdn.imooc.com//57498fd7000173dd09030350.jpg這兩個不應該要一樣的嗎?還有25行不是應該改成public static void MapTst(){}這樣嗎?

查看完整回答
反對 回復 2016-05-28
?
留給沿海地帶

TA貢獻1條經驗 獲得超0個贊

你看下你這行,Student st = student.get(ID); 等號右邊的student,第一個字母s你寫的是小寫的,你應該只是在上面定義了一個Student student,但是并沒有給它實例化

查看完整回答
反對 回復 2016-05-26
?
沒看完

TA貢獻8條經驗 獲得超3個贊

僅僅設置一個ID,要打名字的時候當然會出空指針異常了

查看完整回答
反對 回復 2016-05-26
?
冰山點水

TA貢獻109條經驗 獲得超149個贊

把代碼全部貼出來看看

查看完整回答
反對 回復 2016-05-25
?
慕姐6731210

TA貢獻1條經驗 獲得超0個贊

因該是main方法出問題了


查看完整回答
反對 回復 2016-05-25
  • 13 回答
  • 4 關注
  • 2142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號