导出歌单异常了

导出歌单异常了

package com.imcc.song;

import java.util.Objects;

// 歌曲类
public class Song {
    private String id; //歌曲ID
    private String name; //歌曲名
    private String singer; //演唱者

    public Song() {

    }

    public Song(String id, String name, String singer) {
        this.setId(id);
        this.setName(name);
        this.setSinger(singer);
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSinger() {
        return singer;
    }

    public void setSinger(String singer) {
        this.singer = singer;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Song)) return false;
        Song song = (Song) o;
        return Objects.equals(id, song.id) &&
                Objects.equals(name, song.name) &&
                Objects.equals(singer, song.singer);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, singer);
    }

    @Override
    public String toString() {
        return "歌曲信息:" + "歌曲ID:'" + id + '\'' + ", 歌曲名:'" + name + '\'' + ", 演唱者:'" + singer + '\'' + '}';
    }
}














package com.imcc.song;

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

// 播放列表类
public class PlayList  implements Serializable {
    private String playListName; //播放列表名称
    private List<Song> musicList; //播放列表中的歌曲集合

    public PlayList() {
    }

    public PlayList(String playListName, List<Song> musicList) {
        this.setPlayListName(playListName);
        this.setMusicList(musicList);
    }

    public String getPlayListName() {
        return playListName;
    }

    public void setPlayListName(String playListName) {
        this.playListName = playListName;
    }

    public List<Song> getMusicList() {
        if (this.musicList == null) {
            return musicList = new ArrayList<Song>();
        }
        return musicList;
    }

    public void setMusicList(List<Song> musicList) {
        getMusicList();
        this.musicList = musicList;
    }

//    //将歌曲添加播放列表
//    public void addToPlayList(Song song) {
//        getMusicList().add(song);
//    }

    //显示播放列表中所有歌曲:
    public void displayAllSong() {
        List<Song> li = getMusicList();
        for (Song s : li) {
            System.out.println(s.toString());
        }
    }

//    //通过id查询歌曲:
//    public Song searchSongById(String id) {
//
//        return null;
//    }

//    //通过名称查询歌曲:
//    public Song searchSongByName(String n) {
//
//        return null;
//    }

//    //修改歌曲:
//    public void updateSong(String id, Song song) {
//
//    }

    //从播放列表删除歌曲:
    public void deleteSong(String id) {
        List list = this.getMusicList();
        for (int i = 0; i < list.size(); i++) {
            Song s = (Song) list.get(i);
            if (id.equals(s.getId())) {
                list.remove(i);
                this.setMusicList(list);
                break;
            }
        }
    }

    //导出歌单 :
    public void exportPlayList(PlayList playList) {
        try {
            String str = this.getPlayListName() + ".txt";
            FileOutputStream fos = new FileOutputStream(new File(str));
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(playList);
            oos.flush();
            fos.close();
            oos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}



















package com.imcc.song;

import java.util.*;

//播放器类
public class PlayListCollection {
    static private Map<String, PlayList> playListMap; //存放播放列表的集合


    public PlayListCollection() {
    }

    public Map getPlayListMap() {
        if (playListMap == null) {
            playListMap = new HashMap<String, PlayList>();
            playListMap.put("主播放列表", new PlayList());
            return playListMap;
        } else {
            return playListMap;
        }
    }

    public static void setPlayListMap(Map<String, PlayList> playListMap) {
        PlayListCollection playListCollection = new PlayListCollection();
        playListCollection.getPlayListMap();
    }

    //添加播放列表:
    public void addPlayList(PlayList playList) {
        getPlayListMap().put(playList.getPlayListName(), playList);
    }

    //删除播放列表:
    public void deletePlayList(PlayList playList) {
        String str = playList.getPlayListName();
        getPlayListMap().remove(str);
    }

    //通过名字查询:
    public PlayList searchPlayListByName(String playListName) {
        return (PlayList) getPlayListMap().get(playListName);

    }

    //显示所有播放列表名称:
    public void displayPlayListName() {
        Map<String, PlayList> map = getPlayListMap();
        for (Map.Entry<String, PlayList> entry : map.entrySet()) {
            System.out.println("列表名称: " + entry.getKey());
        }
    }


}



























package com.imcc.song;

import java.util.List;
import java.util.Scanner;
import java.util.*;

public class TestDemo {
    static Scanner sc = new Scanner(System.in);

    int i1 = 0;
    int i2 = 0;

    static PlayListCollection playListCollection = new PlayListCollection();

    // 输入数字判断
    public int input() {
        while (true) {
            try {
                return Integer.valueOf(sc.next());
            } catch (Exception e) {
                System.out.println("ERROR!");
                System.out.println("请重新输入:");
            }
        }
    }

    // 主菜单方法
    public void menu() {
        System.out.println("******************");
        System.out.println("    **主菜单**");
        System.out.println("    1--播放列表管理");
        System.out.println("    2--播放器管理");
        System.out.println("    0--退出");
        System.out.println("******************");
        System.out.println("请输入对应的数字进行操做:");
        switch (input()) {
            case 1:
                playlist();
                break;
            case 2:
                player();
                break;
            case 0:
                System.out.println("退出成功,欢迎下次使用!");
                System.exit(0);
            default:
                System.out.println("输入数字错误!");
                menu();
                break;
        }
    }

    // 播放列表管理
    public void playlist() {
        System.out.println("******************");
        System.out.println("    **播放列表管理**");
        System.out.println("    1--将歌曲添加到主播放列表");
        System.out.println("    2--将歌曲添加到普通播放列表");
        System.out.println("    3--通过歌曲id查询播放列表中的歌曲");
        System.out.println("    4--通过歌曲名称查询播放列表中的歌曲");
        System.out.println("    5--修改播放列表中的歌曲");
        System.out.println("    6--删除播放列表中的歌曲");
        System.out.println("    7--显示播放列表中的所有歌曲");
        System.out.println("    8--导出歌单");
        System.out.println("    9--返回上一级菜单");
        System.out.println("******************");
        System.out.println("请输入对应的数字进行管理:");
        switch (input()) {
            case 1:
                //1--将歌曲添加到主播放列表
                i1 = 1;
                testSong();
                playlist();
                break;
            case 2:
                //2--将歌曲添加到普通播放列表
                i1 = 2;
                testSong();
                playlist();
                break;
            case 3:
                //3--通过歌曲id查询播放列表中的歌曲
                i1 = 3;
                testSong();
                playlist();
                break;
            case 4:
                //4--通过歌曲名称查询播放列表中的歌曲
                i1 = 4;
                testSong();
                playlist();
                break;
            case 5:
                //5--修改播放列表中的歌曲
                i1 = 5;
                testSong();
                playlist();
                break;
            case 6:
                //6--删除播放列表中的歌曲
                i1 = 6;
                testSong();
                playlist();
                break;
            case 7:
                //7--显示播放列表中的所有歌曲
                i1 = 7;
                testSong();
                playlist();
                break;
            case 8:
                //8--导出歌单
                i1 = 8;
                testSong();
                playlist();
                break;
            case 9:
                menu();
                break;
            default:
                System.out.println("输入错误!");
                playlist();
                break;
        }
    }

    // 播放器列表管理
    public void player() {
        System.out.println("******************");
        System.out.println("    **播放器列表管理**");
        System.out.println("    1--向播放器添加播放列表");
        System.out.println("    2--从播放器删除播放列表");
        System.out.println("    3--通过名字查询播放列表信息");
        System.out.println("    4--显示所有播放列表名称");
        System.out.println("    9--返回上一级");
        System.out.println("******************");
        System.out.println("请输入对应的数字进行管理:");
        switch (input()) {
            case 1:
                //1--向播放器添加播放列表
                i2 = 1;
                testPlayList();
                break;
            case 2:
                //2--从播放器删除播放列表
                i2 = 2;
                testPlayList();
                break;
            case 3:
                //3--通过名字查询播放列表信息
                i2 = 3;
                testPlayList();
                break;
            case 4:
                //4--显示所有播放列表名称
                i2 = 4;
                testPlayList();
                break;
            case 9:
                menu();
                break;
            default:
                System.out.println("输入错误,请重新输入:");
                player();
                break;
        }
    }

    public static void main(String[] args) {
        TestDemo testDemo = new TestDemo();
        testDemo.menu();
    }


    //主播放列表判断id是否存在
    public boolean isId(String id, String playlist) {
        //首先得到主播放列表对象
        PlayList playList = (PlayList) playListCollection.getPlayListMap().get(playlist);
        //得到list
        boolean flas = false; // 存在为真,不存在为假
        List<Song> list = playList.getMusicList();
        for (Song s : list) {
            if (id.equals(s.getId())) {
                flas = true;
                break;
            }
        }

        return flas;
    }


    /**
     * 测试歌曲类
     */
    public void testSong() {
        //1--将歌曲添加到主播放列表
        if (i1 == 1) {
            System.out.println("将歌曲添加到主播放列表");
            System.out.println("请输入添加歌曲的数量:");
            int x = input();
            PlayList playList = null;
            for (int i = 1; i <= x; i++) {
                System.out.println("请输入第" + i + "首歌曲:");
                System.out.println("请输入歌曲id:");
                String id = sc.next();
                //判断一下id是重复
                boolean idIs = isId(id, "主播放列表");
                //当idIs为true时,说明已经存在
                if (idIs) {
                    System.out.println("id重复");
                    //判断是否还有添加条数
                    if (i < x) {
                        //说明不是最后一条添加重复,跳过本次循环
                        continue;
                    } else {
                        //没有下一条需要添加,返回目录
                        System.out.println("没有下一条信息需要添加!返回菜单!");
                        playlist();
                        break;
                    }
                } else {
                    // 进到这里说明不存在
                    System.out.println("该歌曲id在主播放列表不存在,继续输入其他信息!");
                    System.out.println("请输入歌曲名称:");
                    String name = sc.next();
                    System.out.println("请输入演唱者:");
                    String singer = sc.next();
                    Song song = new Song(id, name, singer);
                    //将原来的list拿出来
                    playList = (PlayList) playListCollection.getPlayListMap().get("主播放列表");
                    playList.setPlayListName("主播放列表");
                    playList.getMusicList().add(song);
                    playListCollection.getPlayListMap().put("主播放列表", playList);
                    System.out.println("添加成功");
                }
            }
            //显示播放列表所有信息
            System.out.println("主播放列表:");
            System.out.println("播放列表中的所有歌曲为:");
            playList.displayAllSong();
        }
        //2--将歌曲添加到普通播放列表
        if (i1 == 2) {
            System.out.println("将歌曲添加到普通播放列表");
            System.out.println("请输入要添加的播放列表名称:");
            String str = sc.next();
            //判断列表是否存在
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //列表存在
                //判断是否为主列表
                if ("主播放列表".equals(str)) {
                    //输入为主播放列表
                    System.out.println("主播放列表请选1到主列表添加!");
                    playlist();
                } else {
                    //输入列表不是主列表,且判断后存在
                    System.out.println("请输入添加歌曲的数量:");
                    //开始添加
                    int x = input();
                    for (int i = 1; i <= x; i++) {
                        System.out.println("请输入第" + i + "首歌曲:");
                        System.out.println("请输入歌曲id:");
                        String id = sc.next();
                        //判断id是否重复
                        PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                        List<Song> list = playList.getMusicList();
                        //判断当前列表是否重复
                        if (!(isId(id, str))) {
                            //前列表没有重复
                            //判断主列表是否有此id
                            if (isId(id, "主播放列表")) {
                                //有此id,进行添加
                                PlayList addPlayList = (PlayList) playListCollection.getPlayListMap().get("主播放列表");
                                List<Song> addList = addPlayList.getMusicList();
                                Song song = null;
                                for (Song s : addList) {
                                    if (id.equals(s.getId())) {
                                        song = s;
                                        break;
                                    }
                                }
                                list.add(song);
                                playListCollection.getPlayListMap().put(str, playList);
                                System.out.println("id在主列表存在,添加到此列表成功!");
                                continue;
                            } else {
                                //无此id继续添加
                                System.out.println("该歌曲在主播放列表中不存在,请继续输入其他信息!");
                                System.out.println("请输入歌曲名称:");
                                String name = sc.next();
                                System.out.println("请输入演唱者:");
                                String singer = sc.next();
                                list.add(new Song(id, name, singer));
                                playList.setPlayListName(str);
                                playListCollection.getPlayListMap().put(playList.getPlayListName(), playList);

                                PlayList addPlayList = (PlayList) playListCollection.getPlayListMap().get("主播放列表");
                                List<Song> addList = addPlayList.getMusicList();
                                addList.add(new Song(id, name, singer));
                                playListCollection.getPlayListMap().put("主播放列表", addPlayList);
                            }
                        } else {
                            //id在此列表中重复
                            System.out.println("此列表id重复");
                            continue;
                        }
                    }
                    System.out.println("主播放列表:");
                    System.out.println("播放列表中的所有歌曲为:");
                    PlayList addPlayList = (PlayList) playListCollection.getPlayListMap().get("主播放列表");
                    addPlayList.displayAllSong();

                    System.out.println("普通播放列表:");
                    System.out.println("播放列表中的所有歌曲为:");
                    PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                    playList.displayAllSong();
                }
            } else {
                //列表不存在
                System.out.println("输入有误,列表不存在!");
                playlist();
            }

        }
        //3--通过歌曲id查询播放列表中的歌曲
        if (i1 == 3) {
            System.out.println("通过id查询播放列表中的歌曲");
            System.out.println("请输入要查询播放列表名称:");
            String str = sc.next();
            //判断是否有此播放列表
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //列表存在
                System.out.println("请输入要查询歌曲的id:");
                String id = sc.next();
                //判断id在此列表是否存在
                PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                List<Song> list = playList.getMusicList();
                Song song = null;
                boolean flas = false;
                for (Song s : list) {
                    if (id.equals(s.getId())) {
                        //此id存在
                        flas = true;
                        song = new Song(s.getId(), s.getName(), s.getSinger());
                        break;
                    }
                }
                //得到boolean值判断id是否存在
                if (flas) {
                    //id存在
                    System.out.println("该歌曲的信息为:");
                    System.out.println(song.toString());
                } else {
                    System.out.println("该歌曲在" + str + "播放列表中不存在!");
                    playlist();
                }

            } else {
                //列表不存在
                System.out.println("播放列表并不存在!");
                playlist();
            }
        }
        //4--通过歌曲名称查询播放列表中的歌曲
        if (i1 == 4) {
            System.out.println("通过歌曲名称查询播放列表中的歌曲");
            System.out.println("请输入要查询播放列表名称:");
            String str = sc.next();
            if (playListCollection.getPlayListMap().containsKey(str)) {
                System.out.println("请输入要查询歌曲的名称:");
                String name = sc.next();
                PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                List<Song> list = playList.getMusicList();
                boolean flas = false;
                Song song = null;
                for (Song s : list) {
                    if (name.equals(s.getName())) {
                        flas = true;
                        song = new Song(s.getId(), s.getName(), s.getSinger());
                        break;
                    }
                }
                if (flas) {
                    System.out.println("该歌曲的信息为:");
                    System.out.println(song.toString());
                } else {
                    System.out.println("该歌曲在播放列表" + str + "中不存在!");
                    playlist();
                }
            } else {
                //列表不存在
                System.out.println("播放列表并不存在!");
                playlist();
            }
        }
        //5--修改播放列表中的歌曲
        if (i1 == 5) {
            System.out.println("修改播放列表中的歌曲");
            System.out.println("请输入要修改的歌曲id:");
            String id = sc.next();
            //判断歌曲id是否存在
            //获得所有播放列表
            int x = 0;
            String name = null;
            String singer = null;
            Map<String, PlayList> map = playListCollection.getPlayListMap();
            for (Map.Entry<String, PlayList> entry : map.entrySet()) {
                //所有的value
                PlayList playList = entry.getValue();
                List<Song> list = playList.getMusicList();
                for (Song s : list) {
                    if (id.equals(s.getId())) {

                        if (x == 0) {
                            x++;
                            //开始修改
                            System.out.println("请输入修改后的歌曲名称:");
                            name = sc.next();
                            System.out.println("请输入修改后的演唱者:");
                            singer = sc.next();
                            int index = list.indexOf(s);
                            list.set(index, new Song(id, name, singer));
                            break;
                        }
                        if (x == 1) {
                            x++;
                            int index = list.indexOf(s);
                            list.set(index, new Song(id, name, singer));
                            System.out.println("修改成功!");
                            break;
                        }
                    }
                    if (x == 2) {
                        break;
                    }
                }
            }
            if (x == 0) {
                System.out.println("此id在所有列表中未找到");
                playlist();
            }
            if (x == 1) {
                System.out.println("修改成功");
                playlist();
            }
        }
        //6--删除播放列表中的歌曲
        if (i1 == 6) {
            System.out.println("删除播放列表中的歌曲");
            System.out.println("请输入歌曲所在播放列表名称:");
            String str = sc.next();
            //判断有无此列表
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //有此列表
                System.out.println("请输入要删除歌曲的id:");
                String id = sc.next();
                //判断id是否存在
                if (isId(id, "主播放列表")) {
                    //id存在
                    //判断是否为主播放列表
                    if ("主播放列表".equals(str)) {
                        //为主列表,删除主列表的id及其他列表的id
                        Map<String, PlayList> map = playListCollection.getPlayListMap();
                        int index = 0;
                        for (Map.Entry<String, PlayList> entry : map.entrySet()) {
                            //所有的value值
                            PlayList playList = entry.getValue();
                            List<Song> list = playList.getMusicList();
                            //之前判断主列表存在此id
                            //判断其他列表是否存在此id
                            if (isId(id, entry.getKey())) {
                                index++;
                                playList.deleteSong(id);
                                //id删除之后再次放入map集合中
                                playListCollection.getPlayListMap().put(entry.getKey(), playList);
                            }
                            if (index == 2) {
                                break;
                            }
                        }
                        if (index == 2 || index == 1) {
                            System.out.println("删除成功!");
                            playlist();
                        }
                    } else {
                        //为其他列表只删除一次
                        PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                        playList.deleteSong(id);
                        playListCollection.getPlayListMap().put(str, playList);
                        System.out.println("删除成功!");
                        playlist();
                    }
                } else {
                    //id不存在
                    System.out.println("输入id不存在!");
                    playlist();
                }
            } else {
                //输入播放列表不存在
                System.out.println("此播放列表不存在!");
                playlist();
            }
        }
        //7--显示播放列表中的所有歌曲
        if (i1 == 7) {
            System.out.println("输入播放列表名称:");
            String str = sc.next();
            //判断播放列表是否存在
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //播放列表存在
                //获取播放列表对应的对象
                PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                playList.displayAllSong();
                playlist();
            } else {
                //播放列表不存在
                System.out.println("播放列表不存在!");
                playlist();
            }
        }
        //8--导出歌单
        if (i1 == 8) {
            System.out.println("导出歌单");
            System.out.println("请输入要导出歌单的播放列表名称:");
            String str = sc.next();
            //判断类表是否存在
            if (playListCollection.getPlayListMap().containsKey(str)) {
                PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                playList.exportPlayList();
                System.out.println("导出歌单!");
            } else {
                System.out.println("输入的列表歌单并不存在!");
                playlist();
            }
        }
    }


    /**
     * 测试播放器列表类
     */
    public void testPlayList() {
        //1--向播放器添加播放列表
        if (i2 == 1) {
            System.out.println("向播放器添加列表");
            System.out.println("输入添加的播放列表名称:");
            String str = sc.next();
            //判断有此播放列表
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //有此播放列表
                System.out.println("此播放列表已经存在!");
                player();
            } else {
                //没有此播放列表,进行添加
                PlayList playList = new PlayList();
                playList.setPlayListName(str);
                playListCollection.addPlayList(playList);
                System.out.println("添加播放列表成功!");
                player();
            }
        }
        //2--从播放器删除播放列表
        if (i2 == 2) {
            System.out.println("请输入要删除的播放列表:");
            String str = sc.next();
            //判断有没有此列表
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //有此列表,判断是否为主列表
                if ("主播放列表".equals(str)) {
                    //为主播放列表,不允许删除
                    System.out.println("主播放列表不允许删除!");
                    player();
                } else {
                    //不为主类表,可以删除
                    //获取value对象
                    PlayList playList = (PlayList) playListCollection.getPlayListMap().get(str);
                    System.out.println(playList.getPlayListName());
                    playListCollection.deletePlayList(playList);
                    System.out.println("删除成功!  ");
                    player();
                }
            } else {
                //没有此列表
                System.out.println("此播放列表不存在!");
                player();
            }
        }
        //3--通过名字查询播放列表信息
        if (i2 == 3) {
            System.out.println("通过名字查询播放列表信息");
            System.out.println("请输入要查询的播放列表名称:");
            String str = sc.next();
            //判断播放列表是否存在
            if (playListCollection.getPlayListMap().containsKey(str)) {
                //播放列表存在
                System.out.println("该播放列表存在!");
                System.out.println("该播放列表名称为:" + str);
                System.out.println("播放列表中的所有歌曲为:");
                PlayList playList = playListCollection.searchPlayListByName(str);
                //调用playlist里的查询方法
                playList.displayAllSong();
                player();
            } else {
                //播放列表不存在
                System.out.println("播放列表不存在!");
                player();
            }
        }
        //4--显示所有播放列表名称
        if (i2 == 4) {
            playListCollection.displayPlayListName();
            player();
        }
    }


    /**
     * 测试播放器类
     */
    public void testPlayListCollection() {

    }
}

http://img1.sycdn.imooc.com//climg/5c31f52300015ab309520579.jpg

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

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

1回答
Ariyama雫 2019-01-06 22:34:18

要在Song类里面实现接口Serializeble,不是在PlayList中实现,

public class Song implements Serializable{

朋友,这是我在写这题的时候的代码,关于导出歌单的,写在PlayList类中的 或许能提供帮助

/**

* exprotPlsyList 导出歌单方法

* @param plc Map<String,PlayList>总列表

* @throw IOException io异常//FileNotFoundException 文件创建失败异常

*/

public void exprotPlsyList(Map<String, PlayList> plc) {

try {

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("歌单列表.txt"));// 连接为对象输出流

Iterator<Entry<String,PlayList>> it=plc.entrySet().iterator();//将总表转换为Iterator

while(it.hasNext()) {//循环遍历总表

Entry<String,PlayList> en=it.next();

oos.writeBytes(en.getKey());//写入标题

if(!en.getValue().getMusicList().isEmpty()) {//判空 

for(int i=0,n=en.getValue().getMusicList().size();i<n;i++) {//循环遍历每个歌单的歌曲

oos.writeObject(en.getValue().getMusicList().get(i));//写入每个歌曲的详细信息

}

} else {

oos.writeChars("歌单为空");// 当歌单为空时候写入为空提示

}

}

System.out.println("歌单列表导出完成");

oos.close();// 关闭流


} catch (FileNotFoundException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

在外部(测试类)里面


我用的switch

case 8:pl.exprotPlsyList(plc.getPlayListMap());break; 
pl是Playlist实例化用作调用方法,plc是PlayListCollection的实例化,用来调用所有歌单合计的总表

  • 另外你的NotSerializableException是对象输出流的对象所对应的类还没有实现Serializable接口的异常,
    2019-01-06 22:36:48
  • 提问者 永夜将至 #2
    你是把song类循环加进去了,我直接写入的Serializable这个类
    2019-01-06 22:39:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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