У меня есть статический метод, который должен вызывать SportsMenComparator
. Но это, как мы все знаем, не допускается. Как статическая функция использует подкласс компаратора? Хотя у меня есть обходные пути, я ищу лучшие практики для этой конкретной проблемы.Как статический метод использует компаратор?
final class SportsMan {
private final String name;
private final int rank;
private final String sport;
public SportsMan (String name, int rank, String sport) {
this.name = name;
this.rank = rank;
this.sport = sport;
}
public String getName() {
return name;
}
public int getRank() {
return rank;
}
public String getSport() {
return sport;
}
}
final class Sport {
private final String sport;
private final int numberOfPlayers;
public Sport(String sport, int numberOfPlayers) {
this.sport = sport;
this.numberOfPlayers = numberOfPlayers;
}
public String getSport() {
return sport;
}
public int getNumberOfPlayers() {
return numberOfPlayers;
}
}
public final class Joins {
private Joins() {}
public class SportsMenComparator implements Comparator<SportsMan> {
@Override
public int compare(SportsMan s1, SportsMan s2) {
return s1.getSport().compareTo(s2.getSport());
}
}
public static void innerJoinSort(List<SportsMan> sportsMans, List<Sport> sportList) {
Collections.sort(sportsMans, new SportsMenComparator());
}
}
результаты Eclipse, в следующем сообщении: No enclosing instance of type Joins is accessible
где присоединяется это имя объемлющего класса.
Какова ошибка, которую она бросает? Как вы говорите, что его не допустили? – SudoRahul