InvalidClassException — 직렬화 호환성 문제

InvalidClassException — 직렬화 호환성 문제

InvalidClassException은 직렬화 런타임이 Class에서 다음 문제 중 하나를 감지했을 때 던져지는 예외예요: 클래스의 직렬 버전이 스트림에서 읽은 클래스 설명자의 직렬 버전과 일치하지 않음, 클래스가 알 수 없는 데이터 타입을 포함함, 클래스에 접근 가능한 no-arg 생성자가 없음, enum 상수의 ObjectStreamClass가 enum 타입을 나타내지 않음, 그리고 Java 객체 직렬화 명세에 주어진 기타 조건 등이에요.

출처: Java API Reference

본문

이 클래스는 예외 계층 java.lang.ObjectThrowableExceptionIOExceptionObjectStreamExceptionInvalidClassException을 따르며 Serializable을 구현합니다.

필드

  • String classname — 무효한 클래스의 이름이에요.

생성자

  • InvalidClassException(String reason) — 지정한 이유에 대해 InvalidClassException을 보고해요.
  • InvalidClassException(String cname, String reason) — 클래스 이름과 이유를 지정해 InvalidClassException 객체를 만들어요.
  • InvalidClassException(String cname, String reason, Throwable cause) — 이유와 원인을 지정해 InvalidClassException을 보고해요.

메서드

  • String getMessage() — 클래스 이름이 있으면 포함해 메시지를 생성해요.

이 예외는 serialVersionUID 불일치, 생성자 부재 등 직렬화 역직렬화 시 클래스 구조가 맞지 않을 때 발생해요.

더 알아보기 (Learn more)