ObjectInputStream.ResolveClass(ObjectStreamClass) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
加载与指定流类说明等效的本地类。
[Android.Runtime.Register("resolveClass", "(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;", "GetResolveClass_Ljava_io_ObjectStreamClass_Handler")]
protected virtual Java.Lang.Class? ResolveClass(Java.IO.ObjectStreamClass? desc);
[<Android.Runtime.Register("resolveClass", "(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;", "GetResolveClass_Ljava_io_ObjectStreamClass_Handler")>]
abstract member ResolveClass : Java.IO.ObjectStreamClass -> Java.Lang.Class
override this.ResolveClass : Java.IO.ObjectStreamClass -> Java.Lang.Class
参数
- desc
- ObjectStreamClass
类的实例 ObjectStreamClass
返回
一个 Class 对应于 desc
- 属性
例外
如果找不到对象的类,则为
如果在创建类时出现 I/O 错误,
注解
加载与指定流类说明等效的本地类。 子类可以实现此方法,以允许从备用源提取类。
中的相应方法 ObjectOutputStream 为 annotateClass. 仅对流中的每个唯一类调用此方法一次。 此方法可由子类实现,以使用备用加载机制,但必须返回对象 Class 。 返回后,如果类不是数组类,则其 serialVersionUID 与序列化类的 serialVersionUID 进行比较,如果不匹配,则反序列化失败并引发一个 InvalidClassException 。
此方法 ObjectInputStream 的默认实现返回调用结果
Class.forName(desc.getName(), false, loader)
其中,确定 loader 如下:如果当前线程堆栈上有一个方法,其声明类是由用户定义的类加载程序定义的(并且不是为了实现反射调用而生成的),则 loader 类加载程序与当前正在执行的帧最接近的此类加载程序相对应;否则 loader 为 null。 如果此调用导致ClassNotFoundException传递ObjectStreamClass的实例的名称为基元类型或 void 的Java语言关键字,则Class返回表示该基元类型或 void 的对象(例如,ObjectStreamClass名称"int"将解析为 Integer.TYPE)。 否则, ClassNotFoundException 将引发给此方法的调用方。
Java文档java.io.ObjectInputStream.resolveClass(java.io.ObjectStreamClass)。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。