В нашем проекте мы используем Three Ten Backport, так как один из наших клиентов использует Java 7. Three Ten Backport дает нам новую функциональность даты и времени (java.time.*), представленную в Java 8.
Я хотел бы знать, является ли следующая хорошая практика. Поскольку большинство наших клиентов используют Java 8, и однажды мы можем обновить всех клиентов до Java 8, действительно ли имеет смысл полностью уточнять имена классов с помощью org.threeten.bp? В конце концов мы можем перевести всех клиентов на Java 8 и удалить эту зависимость, и если мы в конечном итоге сделаем это, то будет меньше изменений в коде, если мы просто будем использовать имена классов без префикса пакета. Чтобы привести пример кода, я имею в виду следующее.
import org.threeten.bp.LocalDate Time;
public class Example {
public void example() {
LocalDateTime datetime = // ....
}
}
Вы можете видеть в примере, что я ссылаюсь на LocalDateTime без префикса пакета. В Java 8 будет ли загружен класс java.time.LocalDateTime или класс org.threeten.bp.LocalDateTime? Это немного неясно, поскольку в этом коде в Java 8 плавают два LocalDateTime, один из java.time, а другой из org.threeten.bp. Я предполагаю, что нативная библиотека Java будет иметь приоритет и загружена, но могу ошибаться.
Это хорошая практика? Или он может генерировать предупреждения/ошибки компилятора? Даже если он не генерирует никаких предупреждений или ошибок, может ли это быть плохой практикой? Я испытываю искушение сделать это, потому что полное определение класса пакетом просто уродливо, и если мы в конечном итоге удалим зависимость Three Ten, нам придется изменить каждый экземпляр этого кода, а не просто удалить операторы импорта. Рад слышать ваши мысли.
java.lang
.java.time
≠java.lang
, вам не нужно беспокоиться о конфликтах импорта или о чем-то подобном. - person MC Emperor   schedule 01.12.2018import
. Главное, что вам придется заменить вручную, — это вызовы служебного класса, используемого для преобразования в/из устаревших классов и современных (java.time*/*ThreeTen-Backport). - person Basil Bourque   schedule 01.12.2018