请参阅所附图片:
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.String
是final
)。根据the documentation,您的呼叫应类似于以下内容:StringUtils.indexOfAny(quantityInForPriceBandPopUp[i], ['z'])
或使用其中一种重载版本。
更新资料
是否需要导入软件包?
This article和the Java package trail应该有助于软件包和导入的所有详细信息。但是要理解的一些基本知识是:
包是Java使用的命名间隔机制-这使您我都可以编写Utils
类,同时避免由于名称相同而引起冲突。例如,java.sql.Date
和java.util.Date
-两个Date
类可以存在并可以使用,因为它们位于不同的程序包中。将软件包及其子软件包设想为文件夹的层次结构可能会有所帮助。
导入是一项便利功能,可让您每次想使用类的简单名称(Math
或String
)而不是它们的全限定名(FQN)(java.lang.Math
或java.lang.String
)来引用类,这会很痛苦并会使您的代码混乱,使代码的可读性大大降低。
导入不会向您的代码添加任何内容或降低其效率,因为导入的包未链接至您的代码或类似的内容-如上所述,这只是避免始终使用FQN的一种方法。
因此,要回答您的问题,不,导入不是必需的,但是您每次必须使用org.apache.commons.lang.StringUtils
而不是仅仅能够使用StringUtils
。因此,尽管不是必需的,但它通常对您自己和将要尝试阅读您的代码的其他人都很方便。
关于java - 在Eclipse中引用新库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5476803/