InvalidClassException — 직렬화 호환성 문제
InvalidClassException — 직렬화 호환성 문제
InvalidClassException은 직렬화 런타임이 Class에서 다음 문제 중 하나를 감지했을 때 던져지는 예외예요: 클래스의 직렬 버전이 스트림에서 읽은 클래스 설명자의 직렬 버전과 일치하지 않음, 클래스가 알 수 없는 데이터 타입을 포함함, 클래스에 접근 가능한 no-arg 생성자가 없음, enum 상수의 ObjectStreamClass가 enum 타입을 나타내지 않음, 그리고 Java 객체 직렬화 명세에 주어진 기타 조건 등이에요.
본문
이 클래스는 예외 계층 java.lang.Object → Throwable → Exception → IOException → ObjectStreamException → InvalidClassException을 따르며 Serializable을 구현합니다.
필드
String classname— 무효한 클래스의 이름이에요.
생성자
InvalidClassException(String reason)— 지정한 이유에 대해InvalidClassException을 보고해요.InvalidClassException(String cname, String reason)— 클래스 이름과 이유를 지정해InvalidClassException객체를 만들어요.InvalidClassException(String cname, String reason, Throwable cause)— 이유와 원인을 지정해InvalidClassException을 보고해요.
메서드
String getMessage()— 클래스 이름이 있으면 포함해 메시지를 생성해요.
이 예외는 serialVersionUID 불일치, 생성자 부재 등 직렬화 역직렬화 시 클래스 구조가 맞지 않을 때 발생해요.