我有一个注释
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Component
@Scope("prototype")
public @interface Car {
}
和抽象超类
public abstract class AbstractCar {
...
}
在这个课上非常有效:
@Car
public class MyBlueCar extends AbstractCar {
...
}
然而,我没有找到一种方法来省略"扩展AbstractCar"在实施中。由于Car的所有实现都必须扩展AbstractCar,我正在寻找一个解决方案来包含"扩展AbstractCar"在自定义注释中。因此,使用@Car注释的类也是一个AbstractCar,在代码中没有明确地提及它" extends"一部分。
直到现在,我还没有成功;扩展@interface似乎不合逻辑,也不起作用。
我的问题:这是否可行,如果是,我该怎么做?
感谢您的任何建议和意见。
帕特里克
答案 0 :(得分:0)
经过相当多的进一步研究和讨论后,我想添加结果以使事情变得更加明显。
从技术上讲,这是不可能的,正如问题已经评论过的那样。 原因:注释在运行时使用,而“extends”部分在编译时使用。这两件事情无法混合。
意图是一个不幸的选择。当我有所有汽车应该分享的行为时,我无法提供注释。所以我需要代码中的“扩展”部分。
感谢所有帮助我理解的人。 帕特里克