// Serializable/externalizable specific import java.io.*; class a implements Serializable { private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { if (stream == null) throw new IOException(); if (stream == null) throw new ClassNotFoundException(); } private void readObjectNoData() throws ObjectStreamException { if (this == null) throw new ObjectStreamException(){}; } private Object readResolve() throws ObjectStreamException { if (this == null) throw new ObjectStreamException(){}; return null; } private Object writeReplace() { return null; } private void writeObject(ObjectOutputStream stream) { if (stream==null) return; } } class b { private void <warning descr="Private method 'readObject(java.io.ObjectInputStream)' is never used">readObject</warning>(ObjectInputStream stream) throws IOException, ClassNotFoundException { if (stream == null) throw new IOException(); if (stream == null) throw new ClassNotFoundException(); } private void <warning descr="Private method 'readObjectNoData()' is never used">readObjectNoData</warning>() throws ObjectStreamException { if (this == null) throw new ObjectStreamException(){}; } private Object <warning descr="Private method 'readResolve()' is never used">readResolve</warning>() throws ObjectStreamException { if (this == null) throw new ObjectStreamException(){}; return null; } private Object <warning descr="Private method 'writeReplace()' is never used">writeReplace</warning>() { return null; } private void <warning descr="Private method 'writeObject(java.io.ObjectOutputStream)' is never used">writeObject</warning>(ObjectOutputStream stream) { if (stream==null) return; } } //////////////////////////// abstract class abstractNoSerializable { protected Object readResolve() throws ObjectStreamException { return null; } } class serializableSubclassOfAbstractNoSerializable extends abstractNoSerializable implements Serializable { public static void main(String[] args) { System.out.println(new serializableSubclassOfAbstractNoSerializable().toString()); } static { new a(); new b(); } static final long serialVersionUID = 20130808044800000L; }