Вопрос по классам java

104
30 ноября 2020, 12:20

вопрос состоит в следующем: мне нужно получить список месяцев и их номеров (обычный ArrayList, состоящий из объектов с двумя полями - название месяца и его номер). Пример одного элемента: ("январь", "01").
Так вот, могу ли я создать класс Month, внутри которого будет статический метод getMonths()? Будет ли это правильно, или есть более грамотное решение?
Пример кода:

public class Month {
    private String name;
    private String number;
    public Month(String name, String number) {
        this.name = name;
        this.number = number;
    }
    public static List<Month> getMonths() {
        List<Month> list = new ArrayList<Month>();
        list.add(new Month("январь",   "01"));
        list.add(new Month("февраль",  "02"));
        list.add(new Month("март",     "03"));
        list.add(new Month("апрель",   "04"));
        list.add(new Month("май",      "05"));
        list.add(new Month("июнь",     "06"));
        list.add(new Month("июль",     "07"));
        list.add(new Month("август",   "08"));
        list.add(new Month("сентябрь", "09"));
        list.add(new Month("октябрь",  "10"));
        list.add(new Month("ноябрь",   "11"));
        list.add(new Month("декабрь",  "12"));
        return list;
    }
}
Answer 1

Поскольку месяцев строго ограниченное количество, вполне вероятно, что вам больше подойдет enum.

public enum Month {
    JANUARY("январь", "01"),
    FEBRUARY("февраль", "02"),
    MARCH("март", "03"),
    APRIL("апрель", "04"),
    MAY("май", "05"),
    JUNE("июнь", "06"),
    JULY("июль", "07"),
    AUGUST("август", "08"),
    SEPTEMBER("сентябрь", "09"),
    OCTOBER("октябрь", "10"),
    NOVEMBER("ноябрь", "11"),
    DECEMBER("декабрь", 12");
    private String name;
    private String number;
    private Month(String name, String number) {
        this.name = name;
        this.number = number;
    }
    public static List<Month> getMonths() {
       return new ArrayList<>(Arrays.asList(Month.values()));
       // либо Arrays.asList(array), если не требуется в дальнейшем модифицировать список
    }
}
READ ALSO
Написать подобие своей консоли на Java

Написать подобие своей консоли на Java

Возникла задача написать что-то на подобии консоли на JavaЧисто для вывода в нее информации

99
Как обеспечить доступ JavaFX-контроллерам к primaryStage с помощью Spring без жесткого связывания?

Как обеспечить доступ JavaFX-контроллерам к primaryStage с помощью Spring без жесткого связывания?

На момент написания данного вопроса я нахожусь в самом начале понимания концепции инъекции зависимости, и всё, что умею делать с ApplicationContext...

107
java работа с текстом

java работа с текстом

Есть текстовый фаил, в котором записано следующие:

112
Вопрос по дженерикам метода и ограничению переменных типов

Вопрос по дженерикам метода и ограничению переменных типов

Сейчас активно изучаю (или даже разбираю) известное пособие Хорстмена и Корнелла по Java2В данный момент остановился на параметризации

110