Статический метод импорта перегружен - PullRequest
1 голос
/ 10 апреля 2019

У меня есть файл 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;

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

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

1 Ответ

2 голосов
/ 10 апреля 2019

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

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

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

setDate(1234L);

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...