使自定义Java注释成为必需的

使自定义Java注释成为必需的,java,annotations,Java,Annotations,假设我正在为查询编写一个字符串生成器: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface SearchQuery { } 以及: 因此,@Search类具有返回字符串的@SearchQuery方法: @Search public class Queries extends Query{ @SearchQuery public String queryEveryth

假设我正在为查询编写一个字符串生成器:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SearchQuery {
}
以及:

因此,
@Search
类具有返回字符串的
@SearchQuery
方法:

@Search
public class Queries extends Query{

    @SearchQuery
    public String queryEverything(){
        return "SELECT * FROM TABLE";
    }

}
主要问题:

A.我是否可以使注释类
@Search
强制至少存在一种
@SearchQuery
方法

其他问题:

B.
@SearchQuery
的方法是否可以强制始终返回字符串

C.我将RetentionPolicy设置为Runtime,因为我想做一些反射,但仅在测试中:否则我的注释将是
SOURCE
。尽管在生产中没有任何用途,但仍可以将其作为运行时保存吗

我将对我当前的设置进行任何改进,请分享除删除sql字符串以外的任何内容,这只是出于示例目的。

似乎是您想要的。所以前两个问题的答案是:是的,是的。
@Search
public class Queries extends Query{

    @SearchQuery
    public String queryEverything(){
        return "SELECT * FROM TABLE";
    }

}