Почему мы используем новый оператор для доступа к вложенному статическому классу в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему мы используем новый оператор для доступа к вложенному статическому классу в Java?

Сообщение Anonymous »

Ниже приведен класс Сотрудника, который имеет общедоступный статический вложенный класс под названием «EmployeeNameComparator».

Код: Выделить всё

import java.util.Comparator;

public class Employee {

public static class EmployeeNameComparator implements Comparator {

@Override
public int compare(Employee o1, Employee o2) {
return o1.name.compareTo(o2.name);
}
}

private String name;
private int id;
private int yearStarted;

public Employee(String name, int id, int yearStarted) {
this.name = name;
this.id = id;
this.yearStarted = yearStarted;
}

@Override
public String toString() {
return "%d %-15s %d".formatted(id, name, yearStarted);
}
}
Ниже приведен класс Main, в котором я хочу отсортировать массив сотрудниковList с помощью статического вложенного компаратора классов в классе Сотрудники. Мой вопрос: почему мы используем оператор new, чтобы использовать статический класс в Сотруднике. Я имею в виду, что мы не используем оператор new для доступа, например, к статическому целочисленному полю. Что особенного во вложенных статических классах в этом контексте?

Код: Выделить всё

import java.util.ArrayList;
import java.util.List;

public class Main {
public static void main(String[] args) {
List employeeList = new ArrayList(List.of(
new Employee("Jack", 1002, 2014),
new Employee("Mary", 1031, 2019),
new Employee("Andrew", 1982, 2024),
new Employee("Bob", 1721, 2000)
));

employeeList.sort(new Employee.EmployeeNameComparator());
}
}
Я пытался использовать «ComparatorNameComparator» без оператора new, но получил ошибку компиляции. Я думал, что смогу получить доступ к вложенному статическому классу EmployeeNameComparator без создания экземпляра нового класса Сотрудники, такого как статические целые числа или двойные значения.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ss-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»