Импорт не работает правильно в Eclipse/Java

Я использовал следующее:

String x; ... ... // x gets set somewhere in this code String y = x.replaceAll("\\s+", " ").trim();

Затем я нашел org.apache.commons.lang3.StringUtils.normalizeSpace(), который делает то же самое. Так что в верхней части моего класса я добавил

import org.apache.commons.lang3.StringUtils;

и называется String y = normalizeSpace(x); но он дал мне метод "не найдена ошибка" и предложил создать метод.

Так я попробовал import org.apache.commons.lang3.StringUtils.*;

но та же проблема. У кого-нибудь есть идея, что не так?

Да, я могу использовать

String y = org.apache.commons.lang3.StringUtils.normalizeSpace(x);

но каждый раз становится неудобно печатать весь путь.

О, и я не получил синтаксическую ошибку ни в одном из операторов импорта. И я думаю, что я мог бы вернуться к замене и отделке, но у StringUtils есть много других методов, которые также было бы хорошо использовать.

2 ответа

Вам либо нужен статический импорт:

import static org.apache.commons.lang3.StringUtils.*;

...

String y = normalizeSpace(x);

Или ссылаться на класс по имени:

import org.apache.commons.lang3.StringUtils;

...

String y = StringUtils.normalizeSpace(x);

StringUtils это класс. У него есть статический метод, называемый normalizeSpace(),

Когда вы импортируете класс, это просто означает, что вы можете использовать имя класса без полного имени. Так что вы можете сделать это:

String y = StringUtils.normalizeSpace(x);

поскольку normalizeSpace() это статический метод, вы также можете использовать статический импорт:

import static org.apache.commons.lang3.StringUtils.normalizeSpace;

И тогда вы сможете использовать метод normalizeSpace() напрямую, без имени класса.

Однако следует отметить, что статический импорт следует использовать редко, поскольку он затрудняет отслеживание вашего кода.

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