Ссылка на новую библиотеку в Eclipse - PullRequest
0 голосов
/ 29 марта 2011

Пожалуйста, смотрите прикрепленное изображение:

enter image description here

1) Я скачал новую библиотеку здесь: (http://www.java2s.com/Code/Jar/ABC/Downloadcommonslang24jar.htm)

2) В Eclipse я прав- щелкнул «Ссылки на библиотеки»> «Путь сборки»> «Настроить путь сборки»> «Добавить внешние JAR-файлы» и добавил «commons-lang-2.4.jar»

3). Я добавил import org.apache.commons.lang.* в начало моего класса.

4) Я ввел метод из этого класса indexOfAny() и получаю следующую ошибку: 'The method indexOfAny() is undefined for the type String.'

Какие шаги мне не хватает?Какие шаги, которые я предпринял, не нужны?Мне нужно уметь использовать этот метод.

PS Просьба игнорировать остальную часть кода.

Ответы [ 4 ]

4 голосов
/ 29 марта 2011

indexOfAny () НЕ является методом для объекта String.

Возможно, вы намеревались написать StringUtils.indexOfAny(...)

2 голосов
/ 29 марта 2011

Поскольку в документации у вас есть:

static int indexOfAny(String str, char[] searchChars)
  1. static == этот метод следует вызывать так: StringUtils.indexOfAny (...)
  2. String str ==поместите вашу строку здесь
  3. char [] searchChars == поместите массив символов, которые вы ищете

Найдите строку, чтобы найти первый индекс любого символа вданный набор символов.

2 голосов
/ 29 марта 2011

Вы используете его неправильно, вы пытаетесь вызвать метод indexOfAny() для объекта java.lang.String - этот метод не является частью этого класса.Вы должны вызывать эти методы статически для org.apache.commons.lang.StringUtils - что-то вроде StringUtils.XXX()

Библиотека Commons не дополняет существующие классы (в любом случае, java.lang.String равно final).Согласно документации , ваш вызов должен выглядеть примерно так:

StringUtils.indexOfAny(quantityInForPriceBandPopUp[i], ['z'])

или использовать одну из перегруженных версий.

Обновление

Нужен ли импорт пакета?

В этой статье и след пакета Java долженпомочь со всеми деталями пакетов и импорта.Но некоторые из основных вещей, которые нужно понять:

  1. Пакеты - это механизм пространства имен, который использует Java - это позволяет вам и мне писать класс Utils, избегая коллизий из-заодно и то же имяНапример, java.sql.Date и java.util.Date - два класса Date могут существовать и использоваться, потому что они находятся в разных пакетах.Это может помочь представить пакеты и их подпакеты в виде иерархии папок.

  2. Импорт - это удобная функция, которая позволяет ссылаться на классы по их простому имени (Math или * 1043).*) вместо их полностью определенного имени (FQN) (java.lang.Math или java.lang.String) каждый раз, когда вы хотите его использовать, это становится болезненным и загромождает ваш код, делая его гораздо менее читабельным.

  3. Импорт ничего не добавляет к вашему коду и не делает его менее эффективным, поскольку импортированные пакеты не связаны с вашим кодом или чем-то подобным - как уже упоминалось выше, это просто способ избежать необходимости использоватьFQN все время.

Так что, чтобы ответить на ваш вопрос, нет, импорт не нужен, но тогда вам придется использовать org.apache.commons.lang.StringUtils каждый раз вместо простой возможностииспользуйте StringUtils.Поэтому, хотя в этом нет необходимости, обычно это удобно как вам, так и всем, кто попытается прочитать ваш код.

2 голосов
/ 29 марта 2011

Вы пытаетесь использовать эти методы для строк, вам следует прочитать документацию библиотеки, которую вы хотите использовать.

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