无法实例化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 {...} 

要知道你将需要实现所有您在界面中指定的方法的类