无法访问另一个包中的公共类

时间:2015-10-17 11:19:39

标签: java eclipse

我过去只有一个默认包来完成我的课程。现在我正在学习JUnit测试,所以我创建了另一个名为test的包。但是,我无法访问另一个包中名为QuickSort的公共类。

以下是项目的结构和发生问题的代码行 enter image description here

代码:

package test;

import org.junit.Test;
import org.junit.Assert;

public class TestQuickSort {

    int[] numbers = new int[] { 1, 5, 3, 6, 7, 84, 2, 4, 3 };
    int[] expectedNumbers = new int[] { 1, 2, 3, 3, 4, 5, 6, 7, 84 };

    @Test
    public void test() {
        QuickSort qs = new QuickSort(numbers);
        Assert.assertEquals(expectedNumbers, qs.sort());
    }
}

3 个答案:

答案 0 :(得分:5)

不要这样做。 从不使用默认包,除非你绝对必须这样做。您想使用两个项目;一个包含"生产"码;另一个包含测试代码;都使用相同的目录布局:

"实际代码项目": src / some / package

"测试项目": SRC /一些/包

您将"代码用于测试"进入第一个项目/目录;和你的测试代码到第二个。然后你必须确保测试项目的项目设置已经设置好,以便它能够看到"另一个项目。

答案 1 :(得分:1)

尝试为您的班级添加导入内容:

import QuickSort;

如果将鼠标悬停在Eclipse中带有红色下划线的类名中,Eclipse将显示一个自动为您添加导入的选项。

答案 2 :(得分:1)

您无法从未命名的包(例如默认包)导入类。它导致编译时错误。这就是为什么不建议使用默认包的原因;但是,如果您不熟悉使用多个软件包,我完全可以理解为什么会出现此错误。