다음을 통해 공유


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

대체될 개체

반환

대체 개체

특성

예외

대체 개체를 만드는 동안 I/O 오류가 발생하는 경우

설명

이 메서드를 사용하면 역직렬화하는 동안 ObjectInputStream의 신뢰할 수 있는 서브클래스가 한 개체를 다른 개체로 대체할 수 있습니다. enableResolveObject가 호출될 때까지 개체 바꾸기를 사용할 수 없습니다. enableResolveObject 메서드는 개체를 확인하기 위해 요청하는 스트림을 신뢰할 수 있는지 확인합니다. serialize할 수 있는 개체에 대한 모든 참조는 resolveObject에 전달됩니다. 개체의 프라이빗 상태가 의도치 않게 노출되지 않도록 하기 위해 신뢰할 수 있는 스트림만 resolveObject를 사용할 수 있습니다.

이 메서드는 개체를 읽은 후 readObject에서 반환되기 전에 호출됩니다. 기본 resolveObject 메서드는 동일한 개체만 반환합니다.

서브클래스는 개체를 대체하는 경우 대체된 개체가 참조가 저장될 모든 필드와 호환되도록 해야 합니다. 형식이 필드 또는 배열 요소 형식의 하위 클래스가 아닌 개체는 예외를 발생시켜 serialization을 중단하고 개체는 저장되지 않습니다.

이 메서드는 각 개체가 처음 발견될 때 한 번만 호출됩니다. 개체에 대한 모든 후속 참조는 새 개체로 리디렉션됩니다.

에 대한 java.io.ObjectInputStream.resolveObject(java.lang.Object)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

추가 정보