Я хочу опираться на org.apache.commons.lang3.StringUtils
и добавить определенный метод, специфичный для моей проблемы.Поэтому я пытаюсь наследовать от класса commons и писать
package org.test.project;
public class StringUtils extends org.apache.commons.lang3.StringUtils {
public static boolean myMethod(final String cs) {
// My method body
}
}
Теперь я хочу использовать метод public static boolean isEmpty(final CharSequence cs)
из org.apache.commons.lang3.StringUtils
в другой части моего кода.Насколько я помню и из этой темы a String
является CharSequence
.Таким образом, я пишу
package org.test.project.package;
import org.test.project.StringUtils;
public class TestClass{
public void someMethod(String s){
if (StringUtils.isEmpty(s)){
// do stuff
}
}
}
Почему я получаю ошибку:
cannot find symbol
symbol: method isEmpty(String)
location: class StringUtils
в моей IDE?
С здесь У меня естьИнформация о том, что «Все доступные методы наследуются подклассами».В нем также указывается
Единственное различие с унаследованными статическими (классовыми) методами и унаследованными нестатическими (экземплярами) методами заключается в том, что при написании нового статического метода с той же сигнатурой старыйСтатический метод просто скрыт, не переопределяется.
Но у меня нет метода isEmpty
с тем же стиранием.
Редактировать
ИтакСпасибо @luksch, я добавил метод
public static boolean isEmpty(final String cs) {
return isEmpty((CharSequence)cs);
}
в мой класс StringUtils
, и это работает.Однако для тестирования я хочу вызвать public static String center(final String str, final int size)
из библиотеки.Поэтому я пишу
package org.test.project.package;
import org.test.project.StringUtils;
public class TestClass{
public void someMethod(String s){
if (StringUtils.isEmpty(s)){
// do stuff
}
String test = StringUtils.center("test",10);
}
}
У меня нет какого-либо метода center
моего StringUtils
подкласса.Поэтому я подумал, что он просто автоматически вызовет метод из org.apache.commons.lang3.StringUtils
.Однако я получаю сообщение об ошибке, аналогичное приведенному выше:
cannot find symbol
symbol: method center(String,int)
location: class StringUtils
Почему?