有没有办法强制在Java中使用特定的注释和特定的方法
类实现接口确保接口中的所有方法都在类中定义,同样,是否有任何方法可以告诉JVM在实现类时应该使用某些特定的注释。考虑下面的接口有没有办法强制在Java中使用特定的注释和特定的方法,java,annotations,Java,Annotations,类实现接口确保接口中的所有方法都在类中定义,同样,是否有任何方法可以告诉JVM在实现类时应该使用某些特定的注释。考虑下面的接口 public interface TestClass{ @BeforeClass public void setup(); @AfterClass public void tearDown(); } 下面是实现类 public class TestScripts implements TestClass{ @BeforeClas
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()一起使用,编译器应该显示错误。有什么方法可以实现这一点吗?您不能强制执行这一点,但可以强制执行的是子类实现了一个抽象方法
public abstract class TestClass {
@BeforeClass
public void beforeClass(){
setup();
}
protected void abstract setup();
@AfterClass
public void afterClass(){
tearDown();
}
protected void abstract tearDown();
}
然后,任何子类都必须实现这些方法,并根据注释调用它们。Google的ErrorLoven对每个测试(而不是每个类)也做了类似的事情设置
方法-您可以为此编写类似的检查程序。请注意,注释为@BeforeClass
/@AfterClass
的方法也需要是静态的。