繁体   English   中英

我可以为具有特定注释的类创建通用接口吗?

[英]Can I make a generic interface for classes that have a specific annotation?

我想知道是否有一种方法可以创建一个通用接口,该接口可以在类级别具有特定注释的所有类中实现。

例如:

@XmlRootElement
公共类订阅{...}

@XmlRootElement
公共类作者{...}

我想创建一个适用于这两个类的通用接口(并且以后还会更多)。 有没有办法做到这一点?

接口和继承用于沿继承图“垂直”传播功能。

注释是针对可以附加到类,方法等上的附加功能,实际上与接口无关。

如果您事先知道您的类是什么以及它们之间的关系,您可能根本不需要注释。 这样做的原因是,您可以使它们实现标记接口( java.io.Serializable是它们的一个示例),它们实际上与类级别的批注相同(没有参数),但使用起来更容易。

使用标准Java是不可能的,但是您可以使用AspectJ Inter-type声明

例如,这方面将向每个以@XmlRootElement类添加WhatEverInterface和@XmlRootElement

public aspect MyAspect {
   declare parents: (@XmlRootElement) implements WhatEverInterface;

    public void WhatEverInterface.doSomething() {
       System.out.println("something");
    } 
}

就这么简单:

interface XmlProcessor
{
    public void process(XmlRootElement root);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM