org.springframework.core

## 类 ConfigurableObjectInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.ObjectInputStream
    - - org.springframework.core.ConfigurableObjectInputStream

- 所有已实现的接口:
    Closeable, DataInput, ObjectInput, ObjectStreamConstants, AutoCloseable

      public class ConfigurableObjectInputStream
      extends ObjectInputStream

  Special ObjectInputStream subclass that resolves class names against a specific ClassLoader. Serves as base class for `org.springframework.remoting.rmi.CodebaseAwareObjectInputStream`.
  从以下版本开始:
    2.5.5
  作者:
    Juergen Hoeller

- - ### 嵌套类概要

    - ### 从类继承的嵌套类/接口 java.io.ObjectInputStream

      `ObjectInputStream.GetField`

  - ### 字段概要

    - ### 从接口继承的字段 java.io.ObjectStreamConstants

      `baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, 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`

  - ### 构造器概要

    构造器
    构造器和说明
    `ConfigurableObjectInputStream(InputStream in, ClassLoader classLoader)` Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
    `ConfigurableObjectInputStream(InputStream in, ClassLoader classLoader, boolean acceptProxyClasses)` Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected ClassLoader` | `getFallbackClassLoader()` Return the fallback ClassLoader to use when no ClassLoader was specified and ObjectInputStream's own default class loader failed.
    `protected Class<?>` | `resolveClass(ObjectStreamClass classDesc)`
    `protected Class<?>` | `resolveFallbackIfPossible(String className, ClassNotFoundException ex)` Resolve the given class name against a fallback class loader.
    `protected Class<?>` | `resolveProxyClass(String[] interfaces)`

    - ### 从类继承的方法 java.io.ObjectInputStream

      `available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes`

    - ### 从类继承的方法 java.io.InputStream

      `mark, markSupported, read, reset, skip`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### 从接口继承的方法 java.io.ObjectInput

      `read, skip`

- - ### 构造器详细资料

    - #### ConfigurableObjectInputStream

          public ConfigurableObjectInputStream(InputStream in,
                                               @Nullable
                                               ClassLoader classLoader)
                                        throws IOException

      Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
      参数:
        `in` - the InputStream to read from
        `classLoader` - the ClassLoader to use for loading local classes
      抛出:
        `IOException`
      另请参阅:
        `ObjectInputStream.ObjectInputStream(java.io.InputStream)`

    - #### ConfigurableObjectInputStream

          public ConfigurableObjectInputStream(InputStream in,
                                               @Nullable
                                               ClassLoader classLoader,
                                               boolean acceptProxyClasses)
                                        throws IOException

      Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
      参数:
        `in` - the InputStream to read from
        `classLoader` - the ClassLoader to use for loading local classes
        `acceptProxyClasses` - whether to accept deserialization of proxy classes (may be deactivated as a security measure)
      抛出:
        `IOException`
      另请参阅:
        `ObjectInputStream.ObjectInputStream(java.io.InputStream)`

  - ### 方法详细资料

    - #### resolveClass

          protected Class<?> resolveClass(ObjectStreamClass classDesc)
                                   throws IOException,
                                          ClassNotFoundException

      覆盖:
        `resolveClass` 在类中 `ObjectInputStream`
      抛出:
        `IOException`
        `ClassNotFoundException`

    - #### resolveProxyClass

          protected Class<?> resolveProxyClass(String[] interfaces)
                                        throws IOException,
                                               ClassNotFoundException

      覆盖:
        `resolveProxyClass` 在类中 `ObjectInputStream`
      抛出:
        `IOException`
        `ClassNotFoundException`

    - #### resolveFallbackIfPossible

          protected Class<?> resolveFallbackIfPossible(String className,
                                                       ClassNotFoundException ex)
                                                throws IOException,
                                                       ClassNotFoundException

      Resolve the given class name against a fallback class loader.

      The default implementation simply rethrows the original exception, since there is no fallback available.

      参数:
        `className` - the class name to resolve
        `ex` - the original exception thrown when attempting to load the class
      返回:
        the newly resolved class (never `null`)
      抛出:
        `IOException`
        `ClassNotFoundException`

    - #### getFallbackClassLoader

          @Nullable
          protected ClassLoader getFallbackClassLoader()
                                                           throws IOException

      Return the fallback ClassLoader to use when no ClassLoader was specified and ObjectInputStream's own default class loader failed.

      The default implementation simply returns `null`, indicating that no specific fallback is available.

      抛出:
        `IOException`