- java.lang.Object
-
- java.io.InputStream
-
- java.io.ObjectInputStream
-
- org.refcodes.io.SerializableObjectInputStream
-
- All Implemented Interfaces:
Closeable
,DataInput
,ObjectInput
,ObjectStreamConstants
,AutoCloseable
public class SerializableObjectInputStream extends ObjectInputStream
TheSerializableObjectInputStream
extends an ordinaryObjectInputStream
to also resolve primitive types. In former JDKs (not tested with current ones), primitive types caused problems when deserializing. This class addresses and patches this issue.Interesting enough that there were already virtual class definitions for the primitive types ("boolean.class" -
Boolean.TYPE
, "byte.class" -Byte.TYPE
, "char.clas" -Character.TYPE
, "int.class" -Integer.TYPE
, "double.class" -Double.TYPE
, "long.class" -Long.TYPE
, float.class" -Float.TYPE
).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.io.ObjectInputStream
ObjectInputStream.GetField
-
-
Field Summary
-
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
-
-
Constructor Summary
Constructors Constructor Description SerializableObjectInputStream(InputStream in)
Instantiates a new serializable object input stream impl.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class<?>
resolveClass(ObjectStreamClass aClass)
-
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, resolveProxyClass, setObjectInputFilter, skipBytes
-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.io.ObjectInput
read, skip
-
-
-
-
Constructor Detail
-
SerializableObjectInputStream
public SerializableObjectInputStream(InputStream in) throws IOException, StreamCorruptedException
Instantiates a new serializable object input stream impl.- Parameters:
in
- the in- Throws:
IOException
- Signals that an I/O exception has occurred.StreamCorruptedException
- the stream corrupted exception
-
-
Method Detail
-
resolveClass
public Class<?> resolveClass(ObjectStreamClass aClass) throws ClassNotFoundException, IOException
- Overrides:
resolveClass
in classObjectInputStream
- Throws:
ClassNotFoundException
IOException
-
-