У меня следующая структура классов:
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>>{
}
Я пытаюсь смоделировать спортивные события всех видов (например, «Приспособление» предназначено для конкретной игры между двумя участниками, играющими друг против друга, тогда как другойтип «Событие» может иметь много участников), наряду с прогнозами на результат конкретных «Событий».У меня есть универсальный метод:
public <T> MyPrediction<Fixture<? extends Team>> getMyPrediction(Fixture<? extends Team> fixture) {
}
Я хочу иметь возможность вернуть экземпляр MyPrediction
, который имеет универсальный тип аргумента fixture
, но я не могу 'Кажется, я так и делаю.Например, если я сделаю что-то вроде следующего, я получу ошибку компиляции:
SoccerFixture<EnglishSoccerTeams> soccerMatch = new ScoccerFixture<EnglishSoccerTeams>();
MyPrediction<SoccerFixture<EnglishSoccerTeams>> = getMyPrediction(soccerMatch);
Я хочу изменить свою структуру классов, чтобы включить эту функцию.Как я могу это сделать?