2011-03-22 42 views
0

我想知道是否有一種方法可以製作一個通用的接口,並且可以在類級別上具有特定註釋的所有類中實現。

例如:

我可以爲具有特定註釋的類製作通用接口嗎?

@XmlRootElement
公共類認購{...}

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

我想打一個適用於這兩個類的通用接口(以及更多)。 有沒有辦法做到這一點?

+2

接口應該要求類實現的是什麼?註釋?一些方法? – justkt 2011-03-22 13:11:03

+0

您可以將接口添加到所有具有註釋的類,但是您是否期望a)自動完成此操作b)執行一些有用的操作? – 2011-03-22 13:13:26

回答

2

接口和繼承用於傳播功能「垂直」,向下繼承圖。

註解是用於附加功能,可以固定到類,方法等等,並且實際上與接口無關。

如果您事先知道您的課程將是什麼以及它們將如何相互關聯,那麼您可能根本不需要註釋。原因是你可以讓它們實現標記接口(java.io.Serializable就是其中的一個例子),它們幾乎與類級別的註釋(沒有參數)相同,除了更容易處理。

1

這是不可能與標準的Java,但您可以使用AspectJ Inter-type declarations

例如,這方面,將添加WhatEverInterface和implmentation每個類與@XmlRootElement anototated。

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

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

它的那樣簡單的:

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

+0:這將允許您處理註釋,但不能處理它所屬的類。 – 2011-03-22 13:23:30

相關問題