mae*_*ics 4 java annotations web-services jax-ws
假设我有一个带有一些注释的接口,例如:
@SpecialClass
public interface IFoo { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
假设我创建了一个实现接口的类:
public class Foo implements IFoo { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
类是否可能Foo以某种方式"继承"或自动复制来自IFoo其成员的所有或部分注释(例如,自动注释Foo为@SpecialClass等)?
这将便于实现Web服务类(如那些由JAX-WS"的wsimport"工具生成)由刚刚执行其标注的接口,而无需显式不必界面注释复制到实现类(如javax.jws.WebService,javax.xml.ws.RequestWrapper等).
编辑:我在这里留下这个答案以获取一般信息和未来的读者,但安德烈亚斯指出了我错过的Javadoc的一个重要部分:
请注意,如果使用带注释的类型来注释除类之外的任何内容,则此元注释类型不起作用.另请注意,此元注释仅导致注释从超类继承; 已实现接口上的注释无效.
换句话说,它不会在这种情况下帮助.当然,只有在控制注释本身时它才有用.
我怀疑真正的答案是你只需要在任何地方应用注释.如果你担心忘记一个,你可能想编写一个单元测试,找到你所有的类(说起来容易做起来难,我意识到),并检查实现给定接口的所有类的注释是否存在.
您是否尝试将Inherited注释应用于SpecialClass注释本身?
表示自动继承注释类型.如果注释类型声明中存在Inherited元注释,并且用户在类声明上查询注释类型,并且类声明没有此类型的注释,则将自动查询类的超类以获取注释类型.将重复此过程,直到找到此类型的注释,或者到达类层次结构(对象)的顶部.如果没有超类具有此类型的注释,则查询将指示相关类没有此类注释.
这听起来就像你想要的那样.
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |