我正在阅读一篇文章,其中指出..如果一个类的超类已经在 Java 中实现了可序列化接口,那么它已经在 Java 中可序列化,因为你不能未实现一个接口,它实际上不可能使它成为非可序列化类,但是是的一种避免新类序列化的方法。为避免 java 序列化,您需要在 Class 中实现 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 类中看到的那样告诉我,我如何编写指示抛出 nonserilizable 异常的代码......它是否像抛出 nonseriliable 异常......请告知..