繁体   English   中英

如何在Eclipse的引用库中使用类

[英]How to use classes in Referenced Libraries in Eclipse

我已将algs4.jar文件作为参考库导入,如上所示。 一切似乎都很好,但是我似乎无法使用或访问库中的任何类。

我是否缺少导入声明?

图片参考:

请注意我如何尝试从引用的库中使用BinarySearch ,但它没有为我提供使用或导入它的选项。

我不确定,我没有尝试过。 虽然有些解释。

这是标准库还是有人自己创建并给您的?

问题是类BinarySearchdefault程序包中。 您将无法导入它。 如果此库是由您或您的任何朋友创建的,则需要让您的朋友将所有类从默认程序包移至良好的名称空间,然后重新创建jar。

如果可以访问该类,则ctr + shift + o应该导入该类。

我正在通过Coursera学习Algorithms类,该类利用了algs4.jar参考库。

问题:

您遇到的问题是参考库位于默认程序包中,而您访问参考库的源不在其中。

解决方案

项目中的所有类都必须位于默认程序包中,否则引用库(位于默认程序包中)将无法识别。 您的项目类必须位于src目录中,并且不应在.java文件的开头声明一个程序包。 另外,您还需要确保已将参考库添加到构建路径中

请注意,jar文件中的类都包含在默认软件包中。

如果您的类随后包含在包中,则将无法直接访问它们。

我提交此答案是因为我正在学习这些jar文件所属的算法课程,而这正是导致我的程序无法正常工作的具体原因。

如果要导入类,则需要下载库的打包版本。 请参阅此网页底部的“问答”部分。 http://introcs.cs.princeton.edu/java/stdlib/

问:如果我使用命名包来构造代码,则编译器将无法再访问stdlib.jar中的库。 为什么不?

答:stdlib.jar中的库位于“默认”包中。 在Java中,您不能从命名包访问默认包中的类。 如果需要将我们的库与命名包一起使用,则可以使用打包版本stdlib-package.jar。

首先,不能创建BinarySearch(私有构造函数)。 使用静态方法BinarySearch.rank(int key, int[] array)

其次,您只能从默认包访问BinarySearch

第三,关于Arrays.binarySearch(array, key)呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM