Java에서 런타임에 Serializable 인터페이스가없는 클래스에 추가 할 수 있습니까?

카일 :

직렬화하려는 클래스가 있으며 Serializable을 구현하지만 포함 된 개체 중 하나는 Serializable을 구현하지 않습니다.

직렬화 할 수 있도록 직렬화 가능 인터페이스를 구현하도록 런타임에 클래스를 수정하는 방법이 있습니까? 타사 라이브러리이기 때문에 컴파일 타임에 변경할 수 없습니다.

아마도 일종의 바이트 코드 작성기 같은 것을 사용해야할까요?

편집 : 포함하는 클래스와 포함 된 클래스는 모두 타사 라이브러리에 있으므로 일시적으로 표시 할 수 없다고 생각합니다. 포함하는 클래스 직렬화 가능 으로 표시되지만 그렇지 않은 객체를 포함합니다.

클래스에 대한 사용자 지정 직렬화 메서드를 작성해도 괜찮지 만 어떻게해야할지 모르겠습니다. 리플렉션을 사용하여 개인 변수의 값을 가져와야합니까?

bmargulies :

Serializable에 대한 javadoc을 읽으면 다음을 참조하십시오.

직렬화 및 역 직렬화 프로세스 중에 특수 처리가 필요한 클래스는 다음과 같은 정확한 서명을 사용하여 특수 메서드를 구현해야합니다.

private void writeObject(java.io.ObjectOutputStream out)
     throws IOException
 private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException;
 private void readObjectNoData() 
     throws ObjectStreamException;

비협조적인 필드를 수동으로 직렬화하는 데 사용할 수 있습니다. ASM 사용을 살펴볼 수 있지만 유지 관리가 가능한 솔루션이라고 믿기 어렵습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Java 클래스가 런타임에 자신에게 메소드를 추가 할 수 있습니까?

런타임에 클래스 경로에 디렉토리를 추가 할 수 있습니까?

winrt 구성 요소의 런타임 클래스에 '작업'을 추가할 수 있습니까?

런타임에 ViewPager에서 탭을 추가 / 제거 할 수 있습니까?

런타임에서 Typescript 클래스 추상 메서드를 반복 할 수 있습니까?

프로젝트에 클래스 또는 인터페이스를 추가할 수 없습니다. VS 2019

Java의 Serializable 인터페이스에는 메소드가없고 필드가 없지만 기능을 수행 할 수 있습니다. 어떻게?

런타임 중에 노드를 HBox에 추가할 수 있습니까?

런타임에 @kafkalistener에 주제를 추가할 수 있습니까?

Java-클래스가 일부 클래스 또는 인터페이스에서 상속되는지 어떻게 확인할 수 있습니까?

프로젝트에 이미 런타임 클래스가있는 경우 어떻게 java Runtime.getRuntime ()에 액세스 할 수 있습니까?

Java에서 런타임에 열거 요소를 추가하고 제거 할 수 있습니까?

Java 8에서 인터페이스가 유틸리티 클래스를 대신 할 수 있습니까?

System.setProperty ()가 런타임에 클래스 경로를 변경할 수없는 이유는 무엇입니까?

어쨌든 Java에서 런타임에 객체 클래스를 변경할 수 있습니까?

모델 클래스에 @SuppressWarnings ( "*")를 추가 할 수 있습니까?

Swift에서 런타임에 객체에 변수를 추가 할 수 있습니까?

Java에서 런타임에 인터페이스를 구현할 수 있습니까?

인터페이스에 func를 추가 할 수 없습니다.

jquery로 다른 페이지에 클래스를 추가 할 수 있습니까?

네임 스페이스가 C ++에서 추가 클래스를 추가하지 못하도록 방지 할 수있는 방법이 있습니까?

새 클래스가 런타임에 추가 될 때 알림을받을 수 있습니까? (목표 C)

MassTransit에 클라이언트 / 서비스가 사용할 수있는 WCF 인터페이스가 있습니까?

메서드가 추상 클래스 또는 인터페이스에 속하는지 어떻게 식별 할 수 있습니까?

C ++ 인터페이스가 전체 구현으로 클래스에서 상속 할 수 있습니까?

인터페이스와 특성을 사용할 수 있는데 왜 PHP에 추상 클래스가 있습니까?

런타임에 선택한 OCaml 클래스에서 상속 할 수 있습니까?

javaFx에서 Node 객체에 CSS 클래스를 추가 할 수 있습니까?

C ++에서 클래스 범위에 추가 할 수 있습니까?

TOP 리스트

뜨겁다태그

보관