2017-02-16 90 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 { } 
相关问题