ObjectStreamClass — 직렬화 가능 클래스의 설명자
ObjectStreamClass — 직렬화 가능 클래스의 설명자
ObjectStreamClass는 직렬화 가능 클래스에 대한 설명자(descriptor)예요. 클래스의 이름과 serialVersionUID를 포함해 그 클래스의 직렬화 형식을 설명합니다. 특정 클래스에 대한 ObjectStreamClass는 lookup으로 찾을 수 있어요. SerialVersionUID를 계산하는 알고리즘은 Java 객체 직렬화 명세에 설명되어 있어요.
본문
이 클래스는 java.lang.Object를 상속하며 Serializable을 구현하는 final 클래스예요.
필드
static final ObjectStreamField[] NO_FIELDS— 직렬화 가능 필드가 없음을 나타내는serialPersistentFields값이에요.
메서드
static ObjectStreamClass lookup(Class<?> cl)— 직렬화 가능한 클래스에 대한 설명자를 찾아요.java.io.Serializable이나java.io.Externalizable을 구현하지 않으면null을 반환해요.static ObjectStreamClass lookupAny(Class<?> cl)—Serializable구현 여부와 무관하게 어떤 클래스든 설명자를 반환해요.String getName()— 이 설명자가 설명하는 클래스의 이름을 반환해요.long getSerialVersionUID()— 이 클래스의serialVersionUID를 반환해요. 같은 이름의 클래스들이 공통 루트로부터 진화해 공통 형식으로 직렬화·역직렬화되기로 동의한 집합을 정의해요. 비직렬화 클래스는serialVersionUID가0L이에요.Class<?> forClass()— 이 버전이 매핑된 로컬 VM의 클래스를 반환해요.ObjectStreamField getField(String name)— 이름으로 이 클래스의 필드를 얻어요.ObjectStreamField[] getFields()— 이 직렬화 가능 클래스의 필드 배열을 반환해요.String toString()— 이ObjectStreamClass를 설명하는 문자열을 반환해요.
ObjectStreamClass는 직렬화 호환성 판단(serialVersionUID 비교)과 필드 매핑에 사용돼요.