java命名空间java.io类objectinputstream的类成员方法:
resolveclass定义及介绍
本文导语:
resolveclass
protected class resolveclass(objectstreamclass desc)
throws ioexception,
classnotfoundexception
加载指定流类描述的本地等价类。子类可以实现此方法,从而允许从替换源获取类。
objectoutputstre...
resolveclass
protected class> resolveclass(objectstreamclass desc)
throws ioexception,
classnotfoundexception
- 加载指定流类描述的本地等价类。子类可以实现此方法,从而允许从替换源获取类。
objectoutputstream
中的相应方法是 annotateclass
。对于流中的每个唯一类,此方法只调用一次。此方法可以由子类实现,从而使用替换加载机制,但是必须返回 class
对象。返回后,如果该类不是数组类,则它的 serialversionuid 将与序列化类的 serialversionuid 进行比较,如果不匹配,则反序列化失败,并抛出 invalidclassexception
。
在 objectinputstream
中此方法的默认实现返回调用
class.forname(desc.getname(), false, loader)
的结果,其中 loader
按以下情形确定:如果当前线程的堆栈上存在一种方法,它的声明类由用户定义的类加载器定义(不是一个为实现反射调用而生成的类),则 loader
是对应于最接近当前执行帧的这些方法的类加载器;否则,loader
为 null
。如果此调用导致抛出 classnotfoundexception
,且传递的 objectstreamclass
实例的名称是 java 语言中基本数据类型或 void 关键字,那么将返回表示该基本类型或 void 的 class
对象(例如,名称为 "int"
的 objectstreamclass
将被解析为 integer.type
)。否则,将向此方法的调用者抛出 classnotfoundexception
。
- 参数:
desc
- objectstreamclass
类的实例
- 返回:
- 对应于
desc
的 class
对象
- 抛出:
ioexception
- 任何常规输入/输出异常
classnotfoundexception
- 如果找不到序列化对象的类。