Java 控制序列化

Java 控制序列化,java,Java,我正在阅读一篇文章,文章中说,如果一个类的超类已经在Java中实现了可序列化的接口,那么它在Java中就已经可以序列化了,因为你不能不实现一个接口,它实际上不可能使它成为不可序列化的类,但是有一种方法可以避免新类的序列化。为了避免java序列化,您需要在类中实现writeObject()和readObject()方法,并且需要从这些方法中抛出NotSerializableException。这是定制java序列化过程的另一个好处,如上述问题所述,通常在面试过程中作为后续问题提问 例如。。有一个超

我正在阅读一篇文章,文章中说,如果一个类的超类已经在Java中实现了可序列化的接口,那么它在Java中就已经可以序列化了,因为你不能不实现一个接口,它实际上不可能使它成为不可序列化的类,但是有一种方法可以避免新类的序列化。为了避免java序列化,您需要在类中实现writeObject()和readObject()方法,并且需要从这些方法中抛出NotSerializableException。这是定制java序列化过程的另一个好处,如上述问题所述,通常在面试过程中作为后续问题提问

例如。。有一个超类

class Animal implements Serializable
 { 
int weight = 42;
}

and there is a subclass...

class Dog extends Animal
{
    private void writeObject(ObjectOutputStream o)   
                           throws IOException, ClassNotFoundException  
    {  
       //throw nonserializable exception
    }  

  private void readObject(ObjectInputStream o)   
        throws IOException, ClassNotFoundException  
    {  
            //throw nonserializable exception
    }  

}

请您告诉我,正如上面在readobject()和writeobject()内部的Dog类中所看到的那样,我如何编写指示抛出不可验证异常的代码..是否像抛出不可验证异常一样..请根据问题的存在提出建议..

,我建议阅读异常和异常处理。非常感谢,请告知我们是否也需要一个catch块。。!!不在这里。这里抛出异常的目的是使序列化
Dog
成为不可能。它是试图序列化需要捕获异常的对象的代码。
class Dog extends Animal
{
    private void writeObject(ObjectOutputStream o)   
                           throws IOException, ClassNotFoundException 
    {  
       throw new NotSerializableException();
    }  

  private void readObject(ObjectInputStream o)   
        throws IOException, ClassNotFoundException  
    {  
        throw new NotSerializableException();
    }  

}