Импорт не работает правильно в 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() напрямую, без имени класса.
Однако следует отметить, что статический импорт следует использовать редко, поскольку он затрудняет отслеживание вашего кода.