Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
序列化对象Java的构造函数中出现不可理解的错误_Java_Database_Save_Serializable - Fatal编程技术网

序列化对象Java的构造函数中出现不可理解的错误

序列化对象Java的构造函数中出现不可理解的错误,java,database,save,serializable,Java,Database,Save,Serializable,我的程序中有一个非常讨厌的bug,我完全不知道为什么我不能保存我的数据库。也许你能帮我 我有一个带有saveMethod的持久性类 import java.io.*; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.stream.Collectors; public class Persistence{ Path path; public

我的程序中有一个非常讨厌的bug,我完全不知道为什么我不能保存我的数据库。也许你能帮我

我有一个带有saveMethod的持久性类

import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.stream.Collectors;

public class Persistence{
 Path path;

public static void saveDatabase(Database database)
{
    try{
        File file = new File("C:/Users/krystian/Desktop/KrystianProject/TravelClub5050/database.txt");// create a new database for each passenger

        //File file = new File("C:/Users/Monica/Desktop/TravelClub5050/TravelClub5050/datebase.txt");
        file.createNewFile();
        FileOutputStream file1= new FileOutputStream(file.getAbsolutePath(),false);//getting the "C:/USER/MONICA/DESKTOP/...."+... - FROM ABOVE!
        //FileOutputStream file1= new FileOutputStream("C:/Users/Monica/Desktop/TravelClub5050/TravelClub5050/datebase.txt",false);
        ObjectOutputStream out = new ObjectOutputStream(file1);

        out.writeObject(database);
        file1.close();
        out.close();

    }
    catch (IOException e)
    {
        System.out.println("Something went wrong with Save Database");
    }
}
当我试图创建新的票证时,我在PotentialTicket类中遇到了问题

 Pet pet; // for add -ons
 Laguage laguage; // i create those object in a method in Potential ticket class
 Pet pet1; // those  too
 Laguage laguage1; 

 public class PotentialTicket {

 passenger.addTicket(new Ticket(departureDestination.getText(), arrivalDestination.getText(),Integer.parseInt(nPassangers.getText()),comboD.getSelectedItem().toString(),
                    comboM.getSelectedItem().toString(),comboY.getSelectedItem().toString(), 
                    comboD1.getSelectedItem().toString(),comboM1.getSelectedItem().toString(),comboY1.getSelectedItem().toString(),pris,finalDate.getText(), ticketStatus,laguage, pet)); // this is working i can save my database correctly 

Persistence.saveDatabase(db);
System.out.println("Saving");
但当我使用Laguage类fx laguage1的另一个对象代替Laguage时,它会在持久性类中捕获IOE异常

  passenger.addTicket(new Ticket(departureDestination.getText(), arrivalDestination.getText(),Integer.parseInt(nPassangers.getText()),comboD.getSelectedItem().toString(),
                    comboM.getSelectedItem().toString(),comboY.getSelectedItem().toString(), 
                    comboD1.getSelectedItem().toString(),comboM1.getSelectedItem().toString(),comboY1.getSelectedItem().toString(),pris,finalDate.getText(), ticketStatus,laguage1, pet1));
  Persistence.saveDatabase(db);
  System.out.println("Saving");
如果有任何帮助,我将不胜感激

   java.io.NotSerializableException: Laguage
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at java.util.ArrayList.writeObject(ArrayList.java:762)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at java.util.ArrayList.writeObject(ArrayList.java:762)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at Persistence.saveDatabase(Persistence.java:21)
at PotentialTicket$6.actionPerformed(PotentialTicket.java:440)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:724)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

是否要共享异常的堆栈跟踪?没有这一点,我们什么也不做,只是猜测——这毫无意义……java.io.NotSerializableException:Laguage意味着类Laguage也应该序列化?请将完整堆栈跟踪发布到问题中。@Boristeider doneOk感谢灵感,我错过了在一个类中实现Serializable