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 и используемых в соответствии с условиями, описанными в разделе "".