有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在我的项目中使用源于jar文件的类

我在Windows764X机器上使用Eclipse。我研究过这个问题,发现很多人都有类似的问题,但我遇到的解决方案对我来说都不太管用

我正在处理一个名为Assignment_1的项目,一个名为Percolation的类。我想使用对象WeightedQuickUnionUF,它位于jar文件中包含的包中,名为algs4.jar

我似乎已经将我感兴趣的Jar文件添加到构建路径中(它现在显示在“引用库”下)。jar文件algs4.jar位于项目文件夹中名为lib的文件夹中

但是,当我试图在类中声明类型为WeightedQuickUnionUF的对象时,我得到一个错误“WeightedQuickUnionUF无法解析为类型”

在类声明之前,我尝试了各种import命令(仅包括import WeightedQuickUnionUF),所有这些命令都会产生错误“导入so and so无法解决”

例如,这段代码会产生这两种错误。一个位于import行,另一个位于WeightedQuickUnionUF对象的声明:

package assignment_1_package;
import algs4.WeightedQuickUnionUF;

public class Percolation {

    private int[][] grid;
    public int gridDimension;
    private int opensGrid[][];
    private WeightedQuickUnionUF model;

... //rest of class body here

这让我困惑了整整一天,我似乎无法理解这一点。谢谢你的努力

编辑:这里是我想要导入的类的链接:http://algs4.cs.princeton.edu/15uf/WeightedQuickUnionUF.java.html


共 (3) 个答案

  1. # 1 楼答案

    假设你说的是algs4。类http://algs4.cs.princeton.edu/code/的jar,您的导入不正确,您应该执行以下操作:

    import WeightedQuickUnionUF;
    

    但是在默认包中包含类从来都不是一个好主意,实际上不允许从未命名包导入类型:这会导致编译错误。 http://docs.oracle.com/javase/specs/jls/se5.0/html/packages.html#7.4.2

    A type-import-on-demand declaration (§7.5.2) imports all the accessible (§6.6) types of a named type or package as needed. It is a compile time error to import a type from the unnamed package.

    因此,在您的情况下,要解决您的问题,只需在默认包中创建类,这样您就不必进行导入

  2. # 2 楼答案

    就我而言,这有助于增加

    import edu.princeton.cs.algs4.StdRandom;
    import edu.princeton.cs.algs4.StdStats;
    import edu.princeton.cs.algs4.WeightedQuickUnionUF;
    
  3. # 3 楼答案

    我在同一个班,有同样的问题。删除这两条语句的等效项

     package assignment_1_package; 
        import algs4.WeightedQuickUnionUF;
    

    解决了这个问题。也就是说,下面的问题现在得到了正确的解决

     private WeightedQuickUnionUF model;