我正在尝试测试我的insert
功能是否有效。但是Eclipse给了我一个导入错误。我的建筑路径中有junit4。
这是我的解决方案类
public class Solution {
public class Interval {
int start;
int end;
Interval() { start = 0; end = 0; };
Interval(int s, int e) { start = s; end = e; };
}
public static ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {
// more code
这是我的SolutionTest类
import Solution.Interval; // Error: The import Solution can't be resolved
public class SolutionTest {
@Before
public void setUp() {
ArrayList<Interval> er = new ArrayList<Interval>(); //imoprt Interval
System.out.println("Start");
}
答案 0 :(得分:1)
我怀疑如果您将代码放在默认包以外的软件包中,问题就会消失。编译器可能认为Solution
是一个包,并且在Interval
包中找不到名为Solution
的类或接口。
此外,如果您希望能够在没有Interval
的情况下创建Solution
,从内部类更改Interval
到嵌套类:
package solution;
public class Solution {
public static class Interval {
private final int start;
private final int end;
public Interval() {
this(0, 0);
}
public Interval(int start, int end) {
this.start = start;
this.end = end;
}
...
}
public static ArrayList<Interval> insert(List<Interval> intervals, Interval newInterval) {
...
}
}
上面的类将在“src / solution / Solution.java”
中以下是测试:
package solution;
import solution.Solution.Interval;
@RunWith(JUnit4.class)
public class SolutionTest {
private final List<Interval> emptyIntervalList = new ArrayList<Interval>();
...
}
当然,您可以将Interval
作为顶级课程,但如果您这样做,我强烈建议您将其放在另一个文件中(名为Interval.java)。
答案 1 :(得分:0)
删除import语句 // import Solution.Interval;
并尝试以下
ArrayList er = new ArrayList();
答案 2 :(得分:0)
解决了我自己的问题。我将Interval
类分成了自己的类。这解决了这个问题。
所以而不是:
public class Solution {
private static class Interval {
int start;
int end;
Interval() { start = 0; end = 0; };
Interval(int s, int e) { start = s; end = e; };
}
我这样做了:
public class Solution {
// some code here
}
class Interval {
int start;
int end;
Interval() { start = 0; end = 0; };
Interval(int s, int e) { start = s; end = e; };
}
我认为问题是Interval
是一个嵌套类,你无法在Junit中直接测试嵌套类。但如果有人知道更详细的解释,请分享。