按照这个运行 前面测试都没问题 运行到最后pl.addptPlayList(p)就提示空指针

按照这个运行 前面测试都没问题 运行到最后pl.addptPlayList(p)就提示空指针

这是PlayList类的

//将歌曲添加到普通播放列表

public void addptPlayList(PlayListCollection playListCollection) {

System.out.println("请输入您想添加的普通列表名称");

String str = s.next();

if(playListCollection.getPlayListMap().containsKey(str)) {

System.out.println("请输入歌曲id");

song.setId(s.next());

System.out.println("请输入歌曲名字");

song.setName(s.next());

System.out.println("请输入歌手名字");

song.setSinger(s.next());

}

else {

System.out.println("您的播放列表里没有该列表");

}

}




这是PlayListCollection类的

public class PlayListCollection {

private Map<String,PlayList> playListMap;

public PlayListCollection() {

}


public PlayListCollection(Map<String, PlayList> playListMap) {

super();

this.playListMap = playListMap;

}


public Map<String, PlayList> getPlayListMap() {

return playListMap;

}


public void setPlayListMap(Map<String, PlayList> playListMap) {

this.playListMap = playListMap;

}


Map<String, PlayList> plc = new HashMap<String, PlayList>();


Scanner s = new Scanner(System.in);

//添加播放列表

public void addPlayList(PlayList playList) {

PlayList pl = new PlayList();

System.out.println("请输入您要添加的播放列表名称");

String str = s.next();

pl.setPlayListName(str);

plc.put(str, pl);

System.out.println("添加成功");

}

//删除播放列表

public void deletePlayList(PlayList playList) {

System.out.println("请输入您要删除的播放列表");

plc.remove(s.next());

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

}

//通过名字查询播放列表

public PlayList searchPlayListByName(PlayList playliset) {

System.out.println("请输入您要查询的播放列表");

String k = s.next();

Set<String> keySet = plc.keySet();

for(String key:keySet) {

if(k.equals(key)) {

break;

}

}

System.out.println("您所查找的播放列表存在!\n该播放列表名称为:"+k);

return plc.get(k);

}

//显示所有播放列表名称

public void displayListName() {

Iterator<String> a = plc.keySet().iterator();

if(a.hasNext()) {

Set<String> keySet = plc.keySet();

for(String key:keySet) {

System.out.println(key);

}

}

else

System.out.println("还没有播放列表");

}

}

这是测试类  

public static void main(String[] args) {

// TODO Auto-generated method stub

//PlayList pL = new PlayList("主播放列表",musicList);

PlayListCollection p = new PlayListCollection();

//pL.addToPlayList(song);

PlayList pl = new PlayList();

p.addPlayList(pl);

p.addPlayList(pl);

p.displayListName();

p.searchPlayListByName(pl);

   p.displayListName();

   p.deletePlayList(pl);

   p.displayListName();

   pl.addptPlayList(p);

}




正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕雪 2018-04-11 17:52:41

 pl.addptPlayList(p);空指针异常。只能有两种情况,pl为空或者p为空了,你判断一下是哪个为空了。另它的上两行   p.deletePlayList(pl);是不是这里引起的,你跟一下。祝:学习愉快

  • 提问者 慕雪1113198 #1
    我改了 还是空指针 跟我的函数使用有关系吗
    2018-04-11 18:22:18
  • 好帮手慕雪 回复 提问者 慕雪1113198 #2
    你得跟一下谁为空了。跟你调用的函数有没有关系那得看你写的代码。有没有在哪里置为空了。
    2018-04-11 18:39:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师