我过去只有一个默认包来完成我的课程。现在我正在学习JUnit测试,所以我创建了另一个名为test
的包。但是,我无法访问另一个包中名为QuickSort
的公共类。
代码:
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());
}
}
答案 0 :(得分:5)
不要这样做。 从不使用默认包,除非你绝对必须这样做。您想使用两个项目;一个包含"生产"码;另一个包含测试代码;都使用相同的目录布局:
"实际代码项目": src / some / package
"测试项目": SRC /一些/包
您将"代码用于测试"进入第一个项目/目录;和你的测试代码到第二个。然后你必须确保测试项目的项目设置已经设置好,以便它能够看到"另一个项目。
答案 1 :(得分:1)
尝试为您的班级添加导入内容:
import QuickSort;
如果将鼠标悬停在Eclipse中带有红色下划线的类名中,Eclipse将显示一个自动为您添加导入的选项。
答案 2 :(得分:1)
您无法从未命名的包(例如默认包)导入类。它导致编译时错误。这就是为什么不建议使用默认包的原因;但是,如果您不熟悉使用多个软件包,我完全可以理解为什么会出现此错误。