유형의 삭제 같은, 그래서 일반적인 유형이 삭제되고있어
public class WSGenericMessage<T> implements Serializable {
private static final long serialVersionUID = 1L;
private Boolean ResponseCode;
private String ResponseMessage;
private Class<T> ResponseData;
public Boolean getResponseCode() {
return ResponseCode;
}
public void setResponseCode(Boolean responseCode) {
ResponseCode = responseCode;
}
public String getResponseMessage() {
return ResponseMessage;
}
public void setResponseMessage(String responseMessage) {
ResponseMessage = responseMessage;
}
public Class<T> getResponseData() {
return ResponseData;
}
public void setResponseData(Class<T> responseData) {
ResponseData = responseData;
}
}
는 다음과 같은 방법으로 JSON 문자열을 역 직렬화 할 수 있나요 런타임에는 사용할 수 없습니다.
그래서 일반 분류 자없이 클래스 제공 객체를 직렬화 해제 할 수 있고 적절한 유형으로 '형변환'할 수 있습니다.
그러나 문제는 제네릭 형식의 역 직렬화가 아니라 java.lang.Class
개체를 포함하는 형식입니다. 직렬화 및 직렬화 할 수 없습니다.
직렬화 및 직렬화 해제의 경우 클래스 필드없이 객체를 사용해야하며 클래스 이름과 함께 문자열 필드를 사용하거나이 필드를 transient
으로 표시하고 나중에 복원해야합니다.
"직렬화 및 직렬화 할 수 없습니다."- 왜 안 되니? 'Class'는'Serializable'을 구현합니다. 당신의 대답을 분명히하십시오. –
GSON이 처리 할 수 없습니다. –
맞아, 왜 그런지 짐작할 수있다. 나는 그저 OP를위한 "타입 소거"이상의 이유를 분명히 해줄 것을 요구하고 있습니다. 예외 메시지를 이해하는 것이 좋을 것입니다. –