请教运行后提示Exception in thread "main" java.lang.NullPointerException

http://img.mukewang.com/574562c100019fbf14590948.jpg

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();

}


}


慕无忌1213685
浏览 1982回答 13
13回答

陌颜enjoy

你所说的那个构造器的问题,你写的是一般函数哪里是什么构造器,当然不会执行里面的那句都没有调用

慕粉1463556065

再说详细一点..

快过来让我看看

完整代码贴上来啊,目前看来应该是students没有实例化

来自星星的我风格很好奇gfcccbv

确实有问题

说好的幸福626

。。。。

Aaaa64

应该是main方法里的问题

朵朵熙熙丶

应该是main方法

相敬如宾

这两个不应该要一样的吗?还有25行不是应该改成public static void MapTst(){}这样吗?

留给沿海地带

你看下你这行,Student st = student.get(ID); 等号右边的student,第一个字母s你写的是小写的,你应该只是在上面定义了一个Student student,但是并没有给它实例化

没看完

仅仅设置一个ID,要打名字的时候当然会出空指针异常了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java