2010-03-26 73 views
7

我想動態註釋一個類,使其成爲更通用的可能:動態類註釋

public class Test<T> { 

    @XmlAttribute(name = dynamicvalue) 
    T[] data; 

    public Test(String dynamicvalue) { 
    } 
} 

有沒有辦法實現這樣的事情。

TA

回答

4

號註釋是靜態類級的信息,他們不能由實例字段的值(無,它們不能被靜態字段的任一值的影響)的影響。

1

您可以在運行時通過加載新的字節碼來創建新的類,因此理論上它應該是可能的(記住,註釋與類而不是對象關聯)。你可以使用像Java Assist這樣的API來幫助創建它們。有一個annotation package,你可以看看。

這並不容易。

+1

如果你走這條路線,請注意,你仍然必須創建具有不同註釋的多個類。這種 - 挫敗了共同階級的目的。 – 2010-03-26 11:58:06

+0

我假設jlanza需要這樣做來處理一些外部API(也許是一個XML序列化程序),否則你只需要使用一個實例變量。 – 2010-03-27 13:18:31

+0

這個想法是爲一個項目創建一個泛型類,然後使用父類註解來繼承,但是會自動更改名稱。動態值取決於類Template。 – jlanza 2010-03-29 05:24:40