如何使用表示注释类型的类型参数声明接口

时间:2017-04-04 17:26:43

标签: java java-8

拥有我的自定义注释:

@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

正确的配置是什么?

0 个答案:

没有答案