1

我在 Windows 7 64x 机器上使用 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

4

3 回答 3

3

假设您正在谈论http://algs4.cs.princeton.edu/code/类的 algs4.jar ,您的导入不正确,您应该这样做:

import WeightedQuickUnionUF;

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

按需类型导入声明(第 7.5.2 节)根据需要导入命名类型或包的所有可访问(第 6.6 节)类型。从未命名的包中导入类型是编译时错误

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

于 2013-10-05T16:00:06.407 回答
0

我在同一个班,有同样的问题。删除我对这两个语句的等价物

 package assignment_1_package; 
    import algs4.WeightedQuickUnionUF;

解决了这个问题。也就是说,以下现在可以正确解决

 private WeightedQuickUnionUF model;
于 2014-09-14T00:30:06.813 回答
0

就我而言,它有助于添加

import edu.princeton.cs.algs4.StdRandom;
import edu.princeton.cs.algs4.StdStats;
import edu.princeton.cs.algs4.WeightedQuickUnionUF;
于 2017-02-05T16:44:37.257 回答