添加播放列表一直空指针异常,具体哪里有错误?
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
/**
* 属性 playListMap map
* @author RYAN
*getter,setter方法
*public void addPlayList(PlayList pl);添加播放列表
*public void deletePlayList(PlayList lp);删除播放列表
*public PlayList searchPlayListByName();通过名称查询播放列表;
*public void displayAllPlayListName();显示所有播放列表名称;
*/
public class PlayListCollection {
private Map<String, PlayList> playListMap;
public PlayListCollection() {
Map<String,PlayList> playListMap=new HashMap<>();
}
//public PlayListCollection(Map<String, PlayList> playListMap) {
// super();
// this.playListMap = playListMap;
//}
public Map getPlayListMap() {
return playListMap;
}
public void setPlayListMap(Map playListMap) {
this.playListMap = playListMap;
}
//添加播放列表
public void addPlayList(PlayList pl) {
Scanner s=new Scanner(System.in);
System.out.println("向播放器中添加播放列表");
System.out.println("请输入要添加的播放列表的名称:");
String name=s.next();
pl.setPlayListName(name);
playListMap.put(pl.getPlayListName(),pl);
System.out.println("添加播放列表成功~");
}
//删除播放列表
public void deletePlayList(PlayList lp) {
System.out.println("");
}
//通过名称查询播放列表;
public PlayList searchPlayListByName() {
Scanner s =new Scanner(System.in);
System.out.println("通过播放列表名称进行查询");
System.out.println("请输入要查询的播放列表名称:");
String n=s.next();
if(playListMap.containsKey(n)) {
System.out.println("该播放列表存在~");
System.out.println( "该播放列表的名称为"+n);
System.out.println("播放列表的所有歌曲为");
return (PlayList) playListMap.get(n);
}
return (PlayList) getPlayListMap().get(n);
}
//显示所有播放列表名称;
public void displayAllPlayListName() {
Iterator<PlayList> it= playListMap.values().iterator();
while(it.hasNext()) {
System.out.println(it.next().getPlayListName());
}
}
}import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
/**
*属性有playListName(播放列表名称),musicList(播放列表的歌曲集合)
* @author RYAN
*构造方法,getter,setter方法
*public void addToPlayList(Song song);将歌曲添加到播放列表
*public void displayAllSong();显示播放列表所有歌曲;
*public Song searchSongById(String id);通过歌曲id查询歌曲
*public Song searchSongByName(String name);通过歌曲名称查询歌曲;
*public void updateSong(Song song);修改歌曲;
*public void deleteSong(String id);删除歌曲;
*public void exportPlayList();导出播放列表
*/
public class PlayList {
String playListName;
List<Song> musicList=new ArrayList<Song>();
public PlayList(String playListName){
List playList=new ArrayList();
this.playListName = playListName;
}
public String getPlayListName() {
return playListName;
}
public void setPlayListName(String playListName) {
this.playListName = playListName;
}
public List<Song> getMusicList() {
return musicList;
}
public void setMusicList(List<Song> musicList) {
this.musicList = musicList;
}
public PlayList(String playListName, List<Song> musicList) {
super();
this.playListName = playListName;
this.musicList = musicList;
}
public PlayList() {
super();
// TODO Auto-generated constructor stub
}
//将歌曲添加到播放列表
public void addToPlayList(Song song) {
System.out.println("将歌曲添加到主播放列表~");
System.out.println("请输入要添加歌曲的数量:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=0;i<n;i++) {
System.out.println("请输入第"+(i+1)+"首歌曲的信息");
System.out.println("请输入歌曲的id:");
String id=sc.next();
song.setId(id);
System.out.println("请输入歌曲的名称:");
String name=sc.next();
song.setName(name);
System.out.println("请输入歌曲的演唱者:");
String singer=sc.next();
song.setSinger(singer);
musicList.add(song);
System.out.println("添加歌曲成功~");
}
}
//显示播放列表所有歌曲;
public void displayAllSong() {
for(Song s:musicList) {
System.out.println(s);
}
// Iterator<Song> it= musicList.iterator() ;
// while(it.hasNext()) {
//
// System.out.println(it.next());
// }
}
//通过歌曲id查询歌曲
public Song searchSongById(String id) {
return null;
}
//通过歌曲名称查询歌曲
public Song searchSongByName(String name) {
return null;
}
//修改歌曲
public void updateSong(Song song) {
}
//删除歌曲
public void deleteSong(String id) {
}
//导出播放列表
public void exportPlayList() {
}import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
/**
* 属性 playListMap map
* @author RYAN
*getter,setter方法
*public void addPlayList(PlayList pl);添加播放列表
*public void deletePlayList(PlayList lp);删除播放列表
*public PlayList searchPlayListByName();通过名称查询播放列表;
*public void displayAllPlayListName();显示所有播放列表名称;
*/
public class PlayListCollection {
private Map<String, PlayList> playListMap;
public PlayListCollection() {
Map<String,PlayList> playListMap=new HashMap<>();
}
//public PlayListCollection(Map<String, PlayList> playListMap) {
// super();
// this.playListMap = playListMap;
//}
public Map getPlayListMap() {
return playListMap;
}
public void setPlayListMap(Map playListMap) {
this.playListMap = playListMap;
}
//添加播放列表
public void addPlayList(PlayList pl) {
Scanner s=new Scanner(System.in);
System.out.println("向播放器中添加播放列表");
System.out.println("请输入要添加的播放列表的名称:");
String name=s.next();
pl.setPlayListName(name);
playListMap.put(pl.getPlayListName(),pl);
System.out.println("添加播放列表成功~");
}
//删除播放列表
public void deletePlayList(PlayList lp) {
System.out.println("");
}
//通过名称查询播放列表;
public PlayList searchPlayListByName() {
Scanner s =new Scanner(System.in);
System.out.println("通过播放列表名称进行查询");
System.out.println("请输入要查询的播放列表名称:");
String n=s.next();
if(playListMap.containsKey(n)) {
System.out.println("该播放列表存在~");
System.out.println( "该播放列表的名称为"+n);
System.out.println("播放列表的所有歌曲为");
return (PlayList) playListMap.get(n);
}
return (PlayList) getPlayListMap().get(n);
}
//显示所有播放列表名称;
public void displayAllPlayListName() {
Iterator<PlayList> it= playListMap.values().iterator();
while(it.hasNext()) {
System.out.println(it.next().getPlayListName());
}
}
}53
收起
正在回答
1回答
如果是addToPlayList()方法中报空指针,你需要检查一下传进来的song不能为null,musicList.add(song);这句中的musicList不能为null。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星