2017-02-16 4 views
0

Ich habe einige KlasseWie generische an Methode übergeben, die ihre Oberklasse benötigen?

public final class Response<T> { 

} 

Und ich habe übergeordnete Klasse

public class BaseResponse { 

} 

Von Oberklasse I

public class LoginResponse extends BaseResponse{ 

} 

Später erben ich erstellen Objekt Response<LoginResponse> myResponse und ich möchte diese Aufgabe zu folgenden Methode zu übergeben , die nur mit Superklassenmethode und Feldern funktioniert:

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

Und ich bekomme wrong argument type Fehler. Wie man es richtig übergibt?

Antwort

3

Sie können Response<BaseResponse> mit Wildcard ersetzen Response<? extends BaseResponse>

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

natürlich, wenn LoginResponse wirklich BaseResponse

public class LoginResponse extends BaseResponse { } 
erweitert
Verwandte Themen