请参阅所附图片:



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.'

我缺少什么步骤?我采取了哪些步骤是不必要的?我需要能够使用此方法。

附言请忽略其余的代码。

最佳答案

您没有正确使用它,而是试图在indexOfAny()对象上调用方法java.lang.String-该方法不属于该类。您需要在org.apache.commons.lang.StringUtils上静态调用这些方法-形式为StringUtils.XXX()

Commons Library不会扩充现有的类(无论如何,java.lang.Stringfinal)。根据the documentation,您的呼叫应类似于以下内容:

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

或使用其中一种重载版本。

更新资料


  是否需要导入软件包?


This articlethe Java package trail应该有助于软件包和导入的所有详细信息。但是要理解的一些基本知识是:


包是Java使用的命名间隔机制-这使您我都可以编写Utils类,同时避免由于名称相同而引起冲突。例如,java.sql.Datejava.util.Date-两个Date类可以存在并可以使用,因为它们位于不同的程序包中。将软件包及其子软件包设想为文件夹的层次结构可能会有所帮助。
导入是一项便利功能,可让您每次想使用类的简单名称(MathString)而不是它们的全限定名(FQN)(java.lang.Mathjava.lang.String)来引用类,这会很痛苦并会使您的代码混乱,使代码的可读性大大降低。
导入不会向您的代码添加任何内容或降低其效率,因为导入的包未链接至您的代码或类似的内容-如上所述,这只是避免始终使用FQN的一种方法。


因此,要回答您的问题,不,导入不是必需的,但是您每次必须使用org.apache.commons.lang.StringUtils而不是仅仅能够使用StringUtils。因此,尽管不是必需的,但它通常对您自己和将要尝试阅读您的代码的其他人都很方便。

关于java - 在Eclipse中引用新库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5476803/

10-12 01:34
查看更多