有没有办法强制在Java中使用特定的注释和特定的方法

有没有办法强制在Java中使用特定的注释和特定的方法,java,annotations,Java,Annotations,类实现接口确保接口中的所有方法都在类中定义,同样,是否有任何方法可以告诉JVM在实现类时应该使用某些特定的注释。考虑下面的接口 public interface TestClass{ @BeforeClass public void setup(); @AfterClass public void tearDown(); } 下面是实现类 public class TestScripts implements TestClass{ @BeforeClas

类实现接口确保接口中的所有方法都在类中定义,同样,是否有任何方法可以告诉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()一起使用,编译器应该显示错误。有什么方法可以实现这一点吗?

您不能强制执行这一点,但可以强制执行的是子类实现了一个抽象方法

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
的方法也需要是静态的。