Я пытаюсь написать код (начинающий пользователь java здесь), и я получаю сообщение об ошибке. У меня есть догадка, что это имеет какое-то отношение к определению моего класса для AdvancedMatch, которое является совпадением в турнире. Он должен иметь два фидера, которые могут быть либо AdvancedMatch, либо InitMatch, где у InitMatch нет фидеров и AdvancedMatch. Для этого я использовал интерфейс ITournament, который дает мне возможность иметь ITournament внутри моей структуры данных AdvancedMatch.Интерфейс как часть структуры данных
public class AdvancedMatch implements ITournament {
MatchData data;
ITournament feeder1;
ITournament feeder2;
AdvancedMatch (MatchData data, ITournament feeder1, ITournament feeder2) {
this.data = data;
this.feeder1 = feeder1;
this.feeder2 = feeder2;
}
}
public class InitMatch implements ITournament {
MatchData data;
InitMatch (MatchData data) {
this.data = data;
}
}
interface ITournament {
public Boolean allScoresValid();
public Boolean highCapacityVenue(int ticketsSold);
public Boolean winnerAlwaysAdvanced();
public Boolean tWinnerContestant1() ;
}
Позже в коде, я пытаюсь вызвать feeder1.data внутри метода, и я получаю ошибку, что данные не могут быть разрешены или не является полем. Это меня смущает, так как четкие данные являются частью как AdvancedMatch, так и InitMatch.
public Boolean winnerAlwaysAdvanced() {
if (this.feeder1.tWinnerContestant1()) {
this.data.dCompareContestants1(this.feeder1.data);
}
else
return this.data.dCompareContestants2(this.feeder1.data);
}
}
Любая помощь будет принята с благодарностью.
Также обычно полезно включать трассировку стека ошибки, которую вы испытываете, при обращении за помощью. Не то, чтобы это всегда было необходимо, но когда вы указываете, что у вас есть ошибка, обычно можно ожидать, что трассировка стека будет включена в описание проблемы. – mattias
Просьба показать контекст 'winnerAllwaysAdvanced()'. В каком классе он реализован? –