添加播放列表一直空指针异常,具体哪里有错误?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 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()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | 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() { } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 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积分~
来为老师/同学的回答评分吧