无法实例化CleverSearchTimer类型?

时间:2015-10-15 19:11:12

标签: java

以下是CleverSearchTimer和Interface 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 = new CleverSearchTimer();”行中出现错误“无法实例化类型CleverSearchTimer”。

我认为这是因为您无法在测试类中实例化接口。还有另一种方法吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

无法实例化接口。您必须创建一个实现该接口的类,然后实例化该类。匿名类是一个例外,但在这种情况下不适用。

答案 1 :(得分:0)

是的,创建一个实现接口的类

public MyClass implements MyInterface {...}

请注意,您需要实施您在界面中指定的所有方法