내가 추상 클래스동적으로 생성 된 클래스
public abstract class Base implements Serializable {
static final long serialVersionUID = 1;
public Base(int x) { ... }
public abstract void baseMethod();
}
을 가지고 있다고 가정 직렬화하고 내가 동적
public class Temp {
public Base getBase() {
return new Base(2) {
static final long serialVersionUID = 1;
@Override
public void baseMethod() { .... }
};
}
}
내가 동적으로 문자열에서 클래스 온도를 생성 할 수 오전 클래스를 생성하면, 호출 새 인스턴스를 만들고 기본 객체를 추출한 다음 Base를 확장하는 다른 인스턴스처럼 사용합니다. 직렬화 할 때 문제가 발생합니다. 동적 기본 Temp 클래스에서 추출한 Base 기본 개체를 serialize 할 수는 있지만 Temp가 더 이상 클래스 경로에 없기 때문에 나중에 다른 세션에서 deserialize 할 수 없습니다.
사람들이이 문제를 어떻게 생각합니까? 문제의 기본 객체를 Temp 클래스와 분리하여 가져 오는 방법이 있어야합니다 (기본 클래스를 추출한 후에는 신경 쓰지 않습니다). Base 개체는 Temp 클래스의 내용에 의존하지 않습니다.
here를 볼 수 있습니다 자바 직렬화에 대해 더 알고'내가 문자열 dynamically'에서 클래스 온도를 생성 할 수 있어요. 어떻게'String'에서 Temp 객체를 생성하고 있습니까? –
무엇을 직렬화 하시겠습니까? –
@VishalK, OP에서 두 번째 코드 블록의 String을 .java 파일처럼 처리하고 클래스로 컴파일하는 다른 코드로 전달합니다. 그런 다음 클래스를 호출하고 필요한 것을 얻습니다. 이 모든 잘 작동합니다, Base 개체 반환 getBase()에 의해 문제없이 사용할 수 있습니다. – richard