ich die folgende Klassenstruktur:Java - Zurück richtigen Typ von Generic Methode
public class Team {
...
}
public class Event {
}
public abstract class Fixture<T extends Team> implements Event {
...
}
public abstract class Forecast<Event> {
}
public class MyPrediction<T extends Fixture<? extends Team>> extends Forecast<Fixture<? extends Team>>{
}
Ich versuche, Sportveranstaltungen aller Art zu modellieren (dh eine ‚Fixture‘ ist für ein bestimmtes Spiel zwischen zwei Teilnehmern spielen gegeneinander, während eine andere Art von "Ereignis" viele Teilnehmer haben kann, zusammen mit Vorhersagen für das Ergebnis bestimmter "Ereignisse". Ich habe eine generische Methode:
public <T> MyPrediction<Fixture<? extends Team>> getMyPrediction(Fixture<? extends Team> fixture) {
}
Ich möchte eine MyPrediction
Instanz zurückkehren können, die die Gattung des fixture
Argument hat, aber ich kann es nicht zu tun scheinen. Zum Beispiel, wenn ich so etwas wie die folgenden tun, dann erhalte ich einen Übersetzungsfehler:
SoccerFixture<EnglishSoccerTeams> soccerMatch = new ScoccerFixture<EnglishSoccerTeams>();
MyPrediction<SoccerFixture<EnglishSoccerTeams>> = getMyPrediction(soccerMatch);
Ich bin bereit, meine Klassenstruktur zu ändern, um diese Funktion zu übernehmen. Wie kann ich das tun?
"Wenn ich etwas wie das Folgende mache" ... dann (auf welches Problem stoßen Sie)? –
es sieht aus wie Event muss eine Schnittstelle sein –