老师好 哪里错了呀

来源:4-8 项目作业

衮雪TripleRock

2019-11-15 11:58:13

package com.imooc.student;


import java.util.HashMap;

import java.util.Map;

import java.util.Set;


public class School {

Map<String,Banji> BanjiMap;//存放班级的集合

//构造方法

public School() {

BanjiMap=new HashMap<String,Banji>();

}

/**

*  添加班级

* @param banji

*/

public void addBanji(Banji banji){

//班级编号作为key值

BanjiMap.put(banji.getClassName(),banji);

}

/**

*  删除班级

* @param banji

*/

public void deleteBanji(Banji banji){

BanjiMap.remove(banji.getClassId());

System.out.println("删除成功!");

}

/**

* 通过班级名称查询班级

* @param className

* @return

*/

public Banji searchByName(String className) {

Banji banji=null;

Set<String> BanjiSet=BanjiMap.keySet();

for(String s:BanjiSet) {

if(s.equals(BanjiSet)) {

banji=BanjiMap.get(s);

break;

}

}

return banji;

}

/**

*  对各班语文成绩按平均分进行由大到小排序

*/

public void sortChineseByAverage() {

}

/**

* 对各班数学成绩按平均分进行由大到小排序

*/

public void sortMathByAverage() {}

/**

*  显示所有班级名称

*/

public void displayBanJiName() {

Set<String> BanjiSet=BanjiMap.keySet();

System.out.println("播放列表名称为:");

for(String s:BanjiSet) {

System.out.println(s);

}

}

public Map<String, Banji> getBanjiMap() {

return BanjiMap;

}

public void setBanjiMap(Map<String, Banji> banjiMap) {

BanjiMap = banjiMap;

}


}

//学校的测试方法

public void testSchool(){

Student stu1=new Student("s001","张三",90,100);

Student stu2=new Student("s002","李四",100,90);

Student stu3=new Student("s003","王五",110,80);

//创建班级

Banji mainBanji=new Banji("b001","班级1");

//将学生添加进班级中

mainBanji.addStudent(stu1);

mainBanji.addStudent(stu2);

System.out.print("b001");

mainBanji.displayAllStudent();

//定义一个新的班级列表

Banji favouriteBanji=new Banji("b002","班级2");

//将学生添加进班级中

favouriteBanji.addStudent(stu3);

favouriteBanji.addStudent(stu2);

System.out.print("b002");

favouriteBanji.displayAllStudent();

//将两个班级添加到班级集合中

School sch=new School();

sch.addBanji(mainBanji);

sch.addBanji(favouriteBanji);

sch.displayBanJiName();

//根据班级列表名字查询班级列表信息,并显示所有学生

Banji banji=sch.searchByName("班级2");

banji.displayAllStudent();

http://img.mukewang.com/climg/5dce22080992f1b805960396.jpg

写回答

1回答

好帮手慕阿满

2019-11-15

同学你好,报错提示在TestDemo类的181行,

http://img.mukewang.com/climg/5dce4efe09428cb505440251.jpg

181行应该是指如下,

http://img.mukewang.com/climg/5dce4fc40914b70804320121.jpg

这里应该是searchByName("班级2")查询出的banji为null,使用null调用displayAllStudent()报空指针异常。

在searchByName()方法中,equals应该比较的是className,而不是BanjiSet。

http://img.mukewang.com/climg/5dce50f5092cda7605970441.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

1

0 学习 · 11489 问题

查看课程