2017-02-16 91 views
0

我有一些類如何將泛型傳遞給需要其超類的方法?

public final class Response<T> { 

} 

而且我超

public class BaseResponse { 

} 

從超我繼承

public class LoginResponse extends BaseResponse{ 

} 

後來我創建對象Response<LoginResponse> myResponse,我想這個對象傳遞給下面的方法,只適用於超類方法和領域:

public static boolean responseIsValid(Response<BaseResponse> response, Context context) { 
    return false; 
} 

而我得到wrong argument type錯誤。如何正確傳遞它?

回答

3

您可以用通配符代替Response<BaseResponse>Response<? extends BaseResponse>

public static boolean responseIsValid(Response<? extends BaseResponse> response, Context context) { 
    return false; 
} 
當然

如果LoginResponse真正延伸BaseResponse

public class LoginResponse extends BaseResponse { } 
相關問題