Язык

ObjectInputStream.ResolveClass(ObjectStreamClass) Метод

Определение

Загрузите локальный класс, эквивалентный указанному описанию класса потока.

[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

Возвращаемое значение

объект, соответствующий Classdesc

Атрибуты

Исключения

Значение , если класс для объекта не найден.

Значение , если при создании класса возникает ошибка ввода-вывода.

Комментарии

Загрузите локальный класс, эквивалентный указанному описанию класса потока. Подклассы могут реализовать этот метод, чтобы разрешить получение классов из альтернативного источника.

Соответствующий метод имеет ObjectOutputStream значение annotateClass. Этот метод будет вызываться только один раз для каждого уникального класса в потоке. Этот метод можно реализовать подклассами для использования альтернативного механизма загрузки, но должен возвращать Class объект. После возврата, если класс не является классом массива, его serialVersionUID сравнивается с serialVersionUID сериализованного класса, и если имеется несоответствие, десериализация завершается ошибкой и InvalidClassException вызывается.

Реализация этого метода ObjectInputStream по умолчанию возвращает результат вызова.

Class.forName(desc.getName(), false, loader)

где loader определяется следующим образом: если в стеке текущего потока существует метод, декларируемый класс которого был определен определяемым пользователем загрузчиком класса (и не был создан для реализации отражающих вызовов), то loader является загрузчик класса, соответствующий ближайшему такому методу к текущему выполняющемся кадру; в противном случае loader — .null Если этот вызов приводит к ClassNotFoundException тому, что имя переданного ObjectStreamClass экземпляра является ключевым словом языка Java для примитивного типа или void, Class объект, представляющий этот примитивный тип или void, будет возвращен (например, ObjectStreamClass имя с именем "int" будет разрешено).Integer.TYPE ClassNotFoundException В противном случае вызывается вызывающий метод.

Java документации по java.io.ObjectInputStream.resolveClass(java.io.ObjectStreamClass).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к