Перегруженный метод статического импорта

У меня есть файл DateUtils.java, в котором есть служебные методы, связанные с датой. Я перегрузил метод setDate(), как показано ниже:

// Overloaded method #1
public static void setDate(Date date) { }

// Overloaded method #2
public static void setDate(long timestamp) { }

Я использую только один из вышеуказанных методов в других моих файлах классов. Например, метод setDate(Date date). Когда я попытался статически импортировать этот метод, он импортировался так:

import static com.example.app.DateUtils.setDate;

Этот оператор импортирует оба перегруженных метода в моей реализации, поскольку я использую только один перегруженный метод, а не оба.

Есть ли способ выборочно перегружать метод статический импорт? Я имею в виду, могу ли я статически импортировать только интересующий меня метод?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
583
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Is there any way to static import overloaded method selectively? I mean, can I statically import only the method for which I am interested in?

Нет, ты не можешь. Помните, что статический импорт (импорт вообще) — это просто механизм для определения сокращенной версии обращения к вещам. Все, что делает import java.util.Map;, — это позволяет вам использовать Map там, где в противном случае вам пришлось бы набирать java.util.Map. То же самое и для статического импорта, это просто средство получения сокращенного имени (в вашем случае) com.example.all.DateUtils.setDate.

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

setDate(1234L);

... что не так уж и полезно.

Если вы хотите использовать перегрузку long отдельно от перегрузки Date, вам придется разделить их на отдельные, не перегружаемые методы.

Другие вопросы по теме