首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NotSerializableException异常总是出现(Java) -序列化将不起作用

NotSerializableException异常总是出现(Java) -序列化将不起作用
EN

Stack Overflow用户
提问于 2012-01-01 19:40:22
回答 2查看 1.2K关注 0票数 0

给定以下代码:

代码语言:javascript
运行
复制
import java.io.*;

public class Main {


     public static void main(String argv[]) throws IOException 
      {

         View view = null;

          try
          {
              /* Open the file that is the first command line parameter
                 text file must be inside the project library , not in the src library */

              FileInputStream fstream = new FileInputStream("input.txt");                             
              DataInputStream in = new DataInputStream(fstream);
              BufferedReader groupsFile = new BufferedReader(new InputStreamReader(in));            

              view = new View();
              view.insertTeamsFromFile(groupsFile);
              view.startCompetition();                
              in.close();
          }  

          //Catch exception if any
          catch (Exception e)    {    System.err.println("Error: " + e.getMessage());     }


        try 
        {

            String filename = "view.txt";
            FileOutputStream fos = new FileOutputStream(filename);
            ObjectOutputStream out = new ObjectOutputStream(fos);
            out.writeObject(view);
            out.close();
            System.out.println("Object Persisted");
        } 

        catch (IOException  e) 
        {
            e.printStackTrace();
        }

      }
}

当我读到行out.writeObject(view);时,NotSerializableException appears.The视图对象包括一些其他对象,并且我从该代码中的一个文件中读取输入。假设View对象被创建得很好,那么这里会有什么问题呢?

代码语言:javascript
运行
复制
View class : 

    public class View implements Serializable {
import java.io.*;
import java.util.*;


         /* Constructor */


        private Controller controller;

        public View() 

        {
            controller = new Controller();
        }

            ... ... 
            // more code 

    }

确切的信息是:

代码语言:javascript
运行
复制
java.io.NotSerializableException: core.Controller
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)

这是怎么回事?

问候你,罗恩

EN

Stack Overflow用户

回答已采纳

发布于 2012-01-01 19:46:16

异常消息非常清楚:core.Controller类是不可序列化的。使其实现Serializable,如果不能序列化,则将其声明为transient

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8692920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档