ObjectStreamClass — 직렬화 가능 클래스의 설명자

ObjectStreamClass — 직렬화 가능 클래스의 설명자

ObjectStreamClass는 직렬화 가능 클래스에 대한 설명자(descriptor)예요. 클래스의 이름과 serialVersionUID를 포함해 그 클래스의 직렬화 형식을 설명합니다. 특정 클래스에 대한 ObjectStreamClasslookup으로 찾을 수 있어요. SerialVersionUID를 계산하는 알고리즘은 Java 객체 직렬화 명세에 설명되어 있어요.

출처: Java API Reference

본문

이 클래스는 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를 반환해요. 같은 이름의 클래스들이 공통 루트로부터 진화해 공통 형식으로 직렬화·역직렬화되기로 동의한 집합을 정의해요. 비직렬화 클래스는 serialVersionUID0L이에요.
  • Class<?> forClass() — 이 버전이 매핑된 로컬 VM의 클래스를 반환해요.
  • ObjectStreamField getField(String name) — 이름으로 이 클래스의 필드를 얻어요.
  • ObjectStreamField[] getFields() — 이 직렬화 가능 클래스의 필드 배열을 반환해요.
  • String toString() — 이 ObjectStreamClass를 설명하는 문자열을 반환해요.

ObjectStreamClass는 직렬화 호환성 판단(serialVersionUID 비교)과 필드 매핑에 사용돼요.

더 알아보기 (Learn more)