实现接口的类确保接口中的所有方法都在类中定义,同样,有没有办法告诉JVM应该在实现类时使用某些特定的注释。请考虑以下界面
public interface TestClass{
@BeforeClass
public void setup();
@AfterClass
public void tearDown();
}
以下是实施类
public class TestScripts implements TestClass{
@BeforeClass
public void setup(){
/*method body*/
}
@AfterClass
public void tearDown(){
/*method body*/
}
}
我想要的是,如果@BeforeClass
注释未与方法public void setup()
一起使用,并且@AfterClass
注释未与方法public void tearDown()
一起使用,则编译器应显示错误。有没有办法实现这个目标?
答案 0 :(得分:4)
您无法强制执行此操作,但您可以强制执行的是子类实现抽象方法。
public abstract class TestClass {
@BeforeClass
public void beforeClass(){
setup();
}
protected void abstract setup();
@AfterClass
public void afterClass(){
tearDown();
}
protected void abstract tearDown();
}
然后任何子类都必须实现这些方法,它们将根据注释进行调用。