无法实例化CleverSearchTimer类型?
问题描述:
下面是用于CleverSearchTimer与接口CleverSearchTimer无法实例化CleverSearchTimer类型?
public class CleverSearchTimerTest {
private static SimpleRandomCount srctest;
private static CleverSearchTimer ssttest;
@BeforeClass
public static void setUpBeforeClass() {
srctest = new SimpleRandomCount(25);
ssttest = new CleverSearchTimer();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
public void findKthElementTestRegular() throws IndexingError{
assertEquals(ssttest.findKthElement(srctest.array(),4),21);
}
public void FindKthElementTestBoundaryLow() throws IndexingError{
assertEquals(ssttest.findKthElement(srctest.array(),25), 0);
}
public void FindKthElementTestBoundaryHigh() throws IndexingError{
assertEquals(ssttest.findKthElement(srctest.array(),1), 24);
}
public void FindKthElementTestErroneous() throws IndexingError{
equals(ssttest.findKthElement(srctest.array(), 30));
}
@Test
public void test() {
fail("Not yet implemented");
}
}
CleverSearchTimer测试类:
public interface CleverSearchTimer {
/**
* Find the kth largest element in an array of ints
* @param array — array of ints
* @param k — index of the element to be found
* @return — kth largest int in array
* @throws IndexingError — if k is not a valid index
*/
public int findKthElement(int[] array, int k)
throws IndexingError;
/** Find the time it takes to find the kth element
* @param array — array of ints
* @param k — the index of the element to be found
* @return — the time taken to find the kth largest element
* @throws IndexingError — if k is not a valid index
*/
public double time(int[] array,int k)
throws IndexingError;
} // end of interface TimedSearch
就行出现错误 “ssttest =新CleverSearchTimer();” “无法实例化CleverSearchTimer类型”。
我想这是因为你不能在一个测试类中实例化一个接口。还有另一种方法可以做到吗?
感谢您的任何帮助。
答
接口无法实例化。您必须创建一个实现该接口的类,然后实例化该类。匿名类是一个例外,但在这种情况下不适用。
答
是,创建一个实现接口
public MyClass implements MyInterface {...}
要知道你将需要实现所有您在界面中指定的方法的类