Вы используете его неправильно, вы пытаетесь вызвать метод indexOfAny()
для объекта java.lang.String
- этот метод не является частью этого класса.Вы должны вызывать эти методы статически для org.apache.commons.lang.StringUtils
- что-то вроде StringUtils.XXX()
Библиотека Commons не дополняет существующие классы (в любом случае, java.lang.String
равно final
).Согласно документации , ваш вызов должен выглядеть примерно так:
StringUtils.indexOfAny(quantityInForPriceBandPopUp[i], ['z'])
или использовать одну из перегруженных версий.
Обновление
Нужен ли импорт пакета?
В этой статье и след пакета Java долженпомочь со всеми деталями пакетов и импорта.Но некоторые из основных вещей, которые нужно понять:
Пакеты - это механизм пространства имен, который использует Java - это позволяет вам и мне писать класс Utils
, избегая коллизий из-заодно и то же имяНапример, java.sql.Date
и java.util.Date
- два класса Date
могут существовать и использоваться, потому что они находятся в разных пакетах.Это может помочь представить пакеты и их подпакеты в виде иерархии папок.
Импорт - это удобная функция, которая позволяет ссылаться на классы по их простому имени (Math
или * 1043).*) вместо их полностью определенного имени (FQN) (java.lang.Math
или java.lang.String
) каждый раз, когда вы хотите его использовать, это становится болезненным и загромождает ваш код, делая его гораздо менее читабельным.
Импорт ничего не добавляет к вашему коду и не делает его менее эффективным, поскольку импортированные пакеты не связаны с вашим кодом или чем-то подобным - как уже упоминалось выше, это просто способ избежать необходимости использоватьFQN все время.
Так что, чтобы ответить на ваш вопрос, нет, импорт не нужен, но тогда вам придется использовать org.apache.commons.lang.StringUtils
каждый раз вместо простой возможностииспользуйте StringUtils
.Поэтому, хотя в этом нет необходимости, обычно это удобно как вам, так и всем, кто попытается прочитать ваш код.