tengo la siguiente estructura de clases:Java - Retorno tipo correcto de método genérico
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>>{
}
Estoy tratando de modelar los acontecimientos deportivos de todo tipo (es decir, un 'accesorio' es para un juego en particular entre dos participantes juegan uno contra el otro, mientras que otro tipo de 'Evento' puede tener muchos participantes), junto con predicciones para el resultado de 'Eventos' particulares. Tengo un método genérico:
public <T> MyPrediction<Fixture<? extends Team>> getMyPrediction(Fixture<? extends Team> fixture) {
}
Quiero ser capaz de devolver una instancia MyPrediction
que tiene el tipo genérico del argumento fixture
, pero me parece que no puede hacerlo. Por ejemplo, si hago algo como lo siguiente, cuando me siento un error de compilación:
SoccerFixture<EnglishSoccerTeams> soccerMatch = new ScoccerFixture<EnglishSoccerTeams>();
MyPrediction<SoccerFixture<EnglishSoccerTeams>> = getMyPrediction(soccerMatch);
estoy dispuesto a cambiar mi estructura de clases para incorporar esta característica. ¿Como lo puedo hacer?
"Si hago algo como lo siguiente" ... entonces (¿qué problema encuentras)? –
parece que el evento debe ser una interfaz –