[Effective-Java] Chapter12 #88. readObject 메서드는 방어적으로 작성하라
·
Reference/Effective-Java
✨ readObject 메서드를 작성하는 지침 • private여야 하는 객체 참조 필드는 각 필드가 가리키는 객체를 방어적으로 복사하라. • 모든 불변식을 검사하고, 어긋나면 InvalidObjectException을 던진다. (불변식 복사 → 불변식 검사) • 역직렬화 후 그래프 전체 유효성 검사가 필요하다면 ObjectInputValidation 인터페이스를 사용하라 • readObject에서 직접적이든 간접적이든, 재정의 가능한 메서드를 호출하지 마라. (초기화 되기 전에 호출된다.) 🛡️ 역직렬화 방어적 수행 🟡 As-is public final class Period implements Serializable { private final Date start; private final Date ..