Java에서 임시 필드 공개: 지속성 제어 이해
Java의 직렬화에는 객체의 상태를 저장용 바이트 스트림으로 변환하는 작업이 포함됩니다. 나중에 객체를 재현합니다. 그러나 특정 필드는 지속하는 것이 바람직하지 않을 수 있으며, 이로 인해 임시 필드가 도입될 수 있습니다.
임시 필드: 정의
"임시 필드"로 표시되는 임시 필드 " 키워드는 객체의 직렬화된 상태에 포함되어서는 안 되는 키워드입니다. 즉, 객체가 직렬화되면 해당 임시 필드를 건너뜁니다.
임시 필드의 목적
이미지를 저장하고 썸네일:
class GalleryImage implements Serializable { private Image image; private transient Image thumbnailImage; }
썸네일 이미지는 이미지에서 파생되므로 원본 이미지와 함께 저장하면 안 됩니다. 임시로 표시하면 직렬화가 방지됩니다. 이는 저장 공간을 최적화하고 직렬화 오류 가능성을 제거합니다.
직렬화 해제 및 임시 필드
직렬화 해제 시 객체의 상태는 객체의 상태로 복원됩니다. 직렬화. 그러나 임시 필드의 경우 자동으로 복원되지 않습니다. 예를 들어 GalleryImage 클래스에서는 역직렬화 후에도 축소판 이미지가 여전히 null입니다. 이 문제를 해결하려면 readObject 메서드를 재정의하여 프로그래밍 방식으로 썸네일 이미지를 생성할 수 있습니다.
private void readObject(ObjectInputStream inputStream) throws IOException, ClassNotFoundException { inputStream.defaultReadObject(); generateThumbnail(); }
임시 필드의 이점
위 내용은 Java 직렬화에서 임시 필드가 지속성을 어떻게 제어합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!