[英]How can I find all classes on the classpath that have a specific method annotation?
[英]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.