簡體   English   中英

動態轉換對通用類的響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM