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