拥有我的自定义注释:
@Inherited
@Target({ElementType.TYPE, ElementType.TYPE_PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface EntityDomain {
}
我的目标是声明一个界面,其中type parameter
必须是类型,注明@EntityDomain
如:
@EntityDomain
public class Person implements Serializable {
我做了一项研究:
我创建了
@FunctionalInterface
public interface EntityRetrievalForPersistence<@EntityDomain T> {
T getEntity();
}
但缺少某些东西,因为以下编译:
public enum StringTest implements EntityRetrievalForPersistence<String>{
A("A"),
B("B");
private String x;
private StringTest(String x) {
this.x = x;
}
@Override
public String getEntity() {
// TODO Auto-generated method stub
return null;
}
}
应该标记编译器的错误,因为String
没有注释@EntityDomain
正确的配置是什么?