Generische Methode mit abgeleitetem Parameter

Unicate

Erfahrenes Mitglied
Hallo alle zusammen!

Ich möchte eine Methode schreiben, welcher ich als Übergabeparameter einen Klassentypen geben kann welcher von einer bestimmten Klasse abgeleitet ist:

PHP:
public <T extends Response> T request(request, Class<T extends Response> clazz) {
// do smth
}

Das geht so nicht. Wie macht man es?
 
Erst mal fehlt bei dem ersten Parameter ein Typ. Beim zweiten Parameter musst du nur noch T hinschreiben.

Java:
public <T extends Response> T request(Request request, T clazz) {
    // do smth
}


Edit: Aber das hier tut es meiner Meinung genauso

Java:
public Response request(Request request, Response response) {
    // do smth
}

weil du natürlich außer Response selbst auch alle Subklassen übergeben kannst.
 
Naja, das ist nicht ganz das was ich wollte. Wenn ich eine Abstrakte Klasse zurück haben wöllte, dann hätt ich das genau so gemacht.


Was ich möchte, ist der Methode den Klassentyp den ich zurück haben möchte zu übergeben.
Ich möchte den Response dann nicht noch extra casten müssen. Das soll die Methode selbst übernehmen.


Java:
// wobei LoginResponse von Response abgeleitet ist OHNE typcast
LoginResponse response = request(loginRequest, LoginResponse.class);
 
Zuletzt bearbeitet:
Eigentlich sollte das so doch klappen:
Java:
public <T extends Response> T request(Request request, Class<T> clazz) {}
Oder was genau ist das Problem dabei?
 
Zurück