当你这个类的对象要被通过stream传送到另一个地方去的时候,
就要将该类声明成要序列化的
声明完了以后不需要实现任何接口。

解决方案 »

  1.   

    串行化,这样你可以把你的对象状态保存下来或以流的形式传输,比如可以用writeObject()去写如,如果你不想保存一些内容,可以在定义类的时候把它定为暂态transient
      

  2.   

    比如一个C/s(socket)程序,client显示server段的数据,通常情况下你可以在server用取得socket的outputstream inputstream,将取得的数据处理成字符串到客户端,然后在客户端分拆字符串,但是这样显然降低效率,于是你可以将server 端数据包装成一个class implements Serializable,然后直接用objectoutputstream,objectinputstream直接传递
      

  3.   

    象以下的例子,我不明白它为什么要Serializable ?package examples.ejb.basic.statelessSession;import java.io.Serializable;public final class TradeResult implements Serializable {
      private final int    numberTraded; 
      private final String stockSymbol;  public TradeResult(int nt, String ss) {
        numberTraded = nt;
        stockSymbol  = ss;
      }  public int getNumberTraded() { return numberTraded; }
      public String getStockSymbol() { return stockSymbol; }
    }
      

  4.   

    你是说ejb中用来成批取得结果的class啊,因为在ejb中,一个ejb组件调用另一个
    ejb组件,是作为后一个ejb组件的client身份来进行的,就是说,是一个网络调用。
    至于原因,以上几位已说清了,不再累赘
      

  5.   

    是不是不用implement serializable 的class就不能在网上被远程调用???
    是不是序列话后就是变成二进制流可以传输了???
    请教各位了,我还是不太清楚什么情况下该用implement serializable????
      

  6.   

    见http://www.csdn.net/expert/topic/429/429798.xml?temp=.4710352
    "只有实现Serializable借口的对象才能写入ObjectOutputStream,用这个stream可以直接传输Java对象,不管是通过socket在网络上传还是写入本地文件系统。这个接口没有方法,其存在的意义就是识别能通过ObjectOutputStream传送的对象。至于为什么这样在RMI的FAQ中有解释,主要是防止程序员无意或胡乱的用ObjectOutputStream写对象。"