Поделиться через


ObjectInputStream.ResolveObject(Object) Метод

Определение

Этот метод позволит доверенным подклассам ObjectInputStream заменить один объект другим во время десериализации.

[Android.Runtime.Register("resolveObject", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetResolveObject_Ljava_lang_Object_Handler")]
protected virtual Java.Lang.Object? ResolveObject (Java.Lang.Object? obj);
[<Android.Runtime.Register("resolveObject", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetResolveObject_Ljava_lang_Object_Handler")>]
abstract member ResolveObject : Java.Lang.Object -> Java.Lang.Object
override this.ResolveObject : Java.Lang.Object -> Java.Lang.Object

Параметры

obj
Object

объект для замены

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

замененный объект

Атрибуты

Исключения

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

Комментарии

Этот метод позволит доверенным подклассам ObjectInputStream заменить один объект другим во время десериализации. Замена объектов отключена до вызова enableResolveObject. Метод enableResolveObject проверяет, может ли поток, запрашивающий разрешение объекта, быть доверенным. Каждая ссылка на сериализуемые объекты передается в resolveObject. Чтобы убедиться, что частное состояние объектов не непреднамеренно предоставляется только доверенным потокам, может использовать resolveObject.

Этот метод вызывается после чтения объекта, но перед возвратом из readObject. Метод resolveObject по умолчанию просто возвращает тот же объект.

При замене подкласса объектов необходимо убедиться, что замененный объект совместим с каждым полем, в котором будет храниться ссылка. Объекты, тип которых не является подклассом типа поля или элемента массива, прерывают сериализацию путем вызова исключения, и объект не хранится.

Этот метод вызывается только один раз при первом обнаружении каждого объекта. Все последующие ссылки на объект будут перенаправлены в новый объект.

Документация по Java для java.io.ObjectInputStream.resolveObject(java.lang.Object).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

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

См. также раздел