实现的序列化

2022-09-28
前端之家小编收集整理的实现的序列化内容,希望整理的这个开发编程问题实现的序列化能够快速解决!

代码问题

嘿,所以我不熟悉序列化,至少是我们教授希望我们采用的方式。我有一个问题,由于某种原因,即使实现了java.io.Serializable也不会序列化。我尝试了直接路径,“可序列化”均无效。我不确定发生了什么问题,或者据我所知为什么不应该执行任何需要纠正的方法?

我得到的错误

java.io.NotSerializableException: Transaction
    at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185)
    at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
    at Transactionmanager.serialize(Transactionmanager.java:81)
    at Test3.main(Test3.java:62)
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Transaction
    at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1598)
    at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
    at Transactionmanager.deSerialize(Transactionmanager.java:96)
    at Test3.main(Test3.java:67)
Caused by: java.io.NotSerializableException: Transaction
    at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185)
    at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
    at Transactionmanager.serialize(Transactionmanager.java:81)
    at Test3.main(Test3.java:62)

代码

import java.awt.print.Book;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;

public class Transactionmanager implements Serializable {

    private ArrayList<Transaction> col;

    public Transactionmanager() {
        col = new ArrayList<Transaction>();
    }

    public void add(Transaction obj) {
        col.add(obj);
    }

    public void clear() {
        col.clear();
    }

    public int getcount() {
        return col.size();
    }

    public ArrayList<Transaction> getall() {
        ArrayList<Transaction> temp = col;
        Collections.sort(temp,new Comparator<Transaction>() {
            public int compare(Transaction s1,Transaction s2) {
                return ((Integer) s1.getId()).compareTo(s2.getId());
            }
        });
        return temp;
    }

    public ArrayList<Transaction> findBuyer(String name) {
        ArrayList<Transaction> temp = new ArrayList<>();
        for (int i = 0; i < col.size(); i++) {
            if (col.get(i).getBuyer().equals(name)) {
                temp.add(col.get(i));
            }
        }
        Collections.sort(temp,Transaction s2) {
                return ((Integer) s1.getId()).compareTo(s2.getId());
            }
        });
        return temp;
    }

    public ArrayList<Transaction> findSeller(String name) {
        ArrayList<Transaction> temp = new ArrayList<>();
        for (int i = 0; i < col.size(); i++) {
            if (col.get(i).getSeller().equals(name)) {
                temp.add(col.get(i));
            }
        }
        Collections.sort(temp,Transaction s2) {
                return ((Integer) s1.getId()).compareTo(s2.getId());
            }
        });
        return temp;
    }

    public Transaction findId(int ID) {
        for (int i = 0; i < col.size(); i++) {
            if (col.get(i).getId() == ID) {
                return col.get(i);
            }
        }
        return null;
    }

    public void serialize() throws IOException {
        FileOutputStream output = new FileOutputStream(new File("savePerson.ser"));
        ObjectOutputStream outputStream = new ObjectOutputStream(output);
        for (int i = 0; i < col.size(); i++) {
            outputStream.writeObject(col.get(i));
        }
        output.close();
        outputStream.close();
    }

    public void deSerialize() throws IOException,ClassnotFoundException {

        FileInputStream inputStream = new FileInputStream(new File("savePerson.ser"));
        boolean cont = true;
        try {
            ObjectInputStream ois = new ObjectInputStream(inputStream);
            while (cont) {
                Transaction obj = null;
                try {
                    obj = (Transaction) ois.readObject();
                } catch (ClassnotFoundException e) {
                    e.printStackTrace();
                }
                if (obj != null)
                    col.add(obj);
                else
                    cont = false;
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            inputStream.close();
        }

    }
}

问题答案

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:starryrocklee#gmail.com (将#修改为@)

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


我正在尝试使用node.js,react和MongoDB将我的应用程序部署到Heroku;部署成功;但是,该网站无法从MongoDB获
里面的箱子有问题吗 <pre><code>case&#39;usal&#39;: d= (while(s2&gt;0)
我正在尝试从Wikipedia中查找页面列表的Wiki ID。这是我的想法,但是在打印“简介”时出现错误:“类型
我正在学习ES6,并且正在学习免费的在线课程。在课程中,我们涵盖了Promises,所以我有: <pre><code>i
当我尝试运行此代码时,它显示“ com.mysql.jdbc.JDBC4ResultSet@7e2d773b”,当前该表只有一条记录。 <pre><co