添加播放列表一直空指针异常,具体哪里有错误?
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 星