[英]Dynamically cast response to generic class
我有以下通用類:
public class ErrorJsonResponse<T> {
private String error;
private String errCode;
private String message;
private T data;
public ErrorJsonResponse() {
}
public ErrorJsonResponse(String error, T data) {
setError(error);
setData(data);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
我需要在運行時動態轉換為此類,例如:
(ErrorJsonResponse <runtimeType>) result
我該怎么做?
您可以像下面這樣強制轉換泛型類:
public void onResult(ErrorJsonResponse<?> response) {
ErrorJsonResponse<RuntimeException> castedResponse = (ErrorJsonResponse<RuntimeException>) response;
}
您不能像這樣投射它們:
public void onResult(ErrorJsonResponse<OtherException> response) {
ErrorJsonResponse<RuntimeException> castedResponse = (ErrorJsonResponse<RuntimeException>) response;
}
在上面的示例中, ErrorJsonResponse<OtherException>
和ErrorJsonResponse<RuntimeException>
是不可轉換的類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.