我在Windows 7 64x计算机上使用Eclipse。我研究了这个问题,发现很多人都有类似的问题,但我遇到的解决办法对我来说都没有。
我正在一个名为Assignment_1
的名为Percolation
的项目上工作。我想使用名为WeightedQuickUnionUF
的jar文件中包含的包内的algs4.jar
对象。
我似乎已将我感兴趣的Jar文件添加到构建路径(现在显示在“Referenced Libraries”下)。 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
答案 0 :(得分: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节)命名类型或包的类型。 这是一个 编译时错误从未命名的包导入类型。
因此,在您的情况下解决您的问题只需在默认包中创建您的类,这样您就不必进行导入了。
答案 1 :(得分:0)
我在同一个班级,遇到同样的问题。删除我对这两个陈述的等价物
package assignment_1_package;
import algs4.WeightedQuickUnionUF;
解决了这个问题。这就是说以下现在正确地解决了
private WeightedQuickUnionUF model;
答案 2 :(得分:0)
就我而言,它有助于添加
import edu.princeton.cs.algs4.StdRandom;
import edu.princeton.cs.algs4.StdStats;
import edu.princeton.cs.algs4.WeightedQuickUnionUF;