JavaRush /Java блог /Архив info.javarush /Новый класс в JDK8 LocalDate, LocalTime
IvanSPb
21 уровень
Brooklyn

Новый класс в JDK8 LocalDate, LocalTime

Статья из группы Архив info.javarush
Доброе время суток! При занятиях на 8 уровне JavaRush выяснил, что класс Date является устаревшим, Intellij IDEA не рекомендует его использовать. Поискал, нашел рекомендуемые классы. Компанией Oracle создано новое API для работы с датами и временем. Основными объектами нового API стали классы LocalDate, LocalTime и LocalDateTime (последний является этаким объединением двух предыдущих). Официальная документация oracle советует представлять эти классы как календарь или часы на стене возле вас. Новый класс в JDK8 LocalDate, LocalTime - 1Для начала создадим пару объектов этих классов и посмотрим, что нам вернет их toString():

LocalDate today = LocalDate.now(); 
LocalDate MyBirthday = LocalDate.of(1988, Month.APRIL, 3);
И вот вопрос: почему при создании объектов новых классов не используется ключевое слово new? Потратил массу времени, ответ пока так и не нашел. P.S. Предлагаю также изменить ряд упражнений и лекций в связи с новыми реалиями — появлением новых классов и устареванием существующих.
Комментарии (12)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
14 февраля 2020
Я так понимаю существует большое количество старого кода с которым, возможно, придется сталкиваться. Стараюсь писать задачки с датами сначала используя устаревший Date, а потом (убедившись в работоспособности) комментирую этот код и пишу еще раз, но уже с использованием новых возможностей и классов из java.time . Что вы думаете по этому поводу?
Di Ma Уровень 30
8 мая 2019
Потому что конструктор приватный ))) !!! Используется static factory method https://refactoring.guru/ru/replace-constructor-with-factory-method Джошуа Блох Эффективное программирование 2019 г 2 глава ))
Anastasia Kunatava Уровень 16
18 марта 2019
Эх,вопрос 2015 года, а в лекциях все еще класс Date =(
AndreGold Уровень 28
26 декабря 2015
P.S. Предлагаю также изменить ряд упражнений и лекций в связи с новыми реалиями — появлением новых классов и устареванием существующих.
P.S. если бы Вы были чуточку внимательнее и расширяли свое мировозрение по проекту JavaRush, то знали бы,
что здесь используется Java 7, а в ней классом для работы с датами является, класс Date

И вот вопрос: почему при создании объектов новых классов не используется ключевое слово new??
Потому что метод статический метод of() возвращает обект LocalDate
public static LocalDate of(int year,
                           int month,
                           int dayOfMonth)
Obtains an instance of LocalDate from a year, month and day.
ferasinka Уровень 32
25 декабря 2015
Потому что статические методы, вызываемые у LocalDate возвращают ссылку уже на готовый объект, который создается где-то в недрах других методов этого класса.