2011-11-07 63 views
3

我有無法向類添加註釋的情況,但有什麼方法可以將某種元數據添加到您無法編輯的bean(代碼),但重構後還能繼續嗎?如果我擴展bean,然後向該類添加註釋,那該怎麼辦?替代註釋?

+0

你能澄清你打算如何使用元數據嗎? –

回答

2

舊的方式,使用標記界面,即沒有方法的接口,如SerializableCloneable

+1

標記界面是邪惡的! – Guillaume

+1

我懷疑如果註釋不能添加到類中,那麼該類也不能實現標記接口。 –

+0

@Guillaume當然,但他問;) –

1

根據您的IDE,您所需要做的就是引用您的類或方法或文本文件中的字段,如屬性或XML。您的IDE將找到這些並提供執行文本查找/替換時重命名類/方法/字段。 (雖然有些refactors這種移動的方法到另一個類將無法工作這麼好)

1

你可以考慮AOP http://static.springsource.org/spring/docs/2.5.x/reference/aop.html

它可以讓你從外部添加行爲的具體方法,而無需編輯類。額外的代碼可以在方法之前,之後或周圍。

沒有告訴我們你想要達到什麼目的,很難猜出你需要什麼。

+0

好主意,但是你怎麼能夠使用AOP提供的信息作爲其他代碼的元數據? (對不起,我刪除了我的意見在其他答案,我沒有看到你的答覆) –

+0

我不確定,因爲我說這個問題是模糊的。它只是作爲一種可能的解決方案,將行爲添加到類中而不改變它,這基本上是註釋(可以)提供的。元數據可能意味着很多不同的東西。 – Guillaume

0

您是否需要元數據以供其他代碼使用或它應該對人類可讀?

可以使用代碼儀器來任何數據添加到您的類(Javassist進行,一些AOP等)

0

你可以添加一個平行的類層次與元數據。類似BeanInfo類爲Java bean提供元數據。

0

如果您無法修改代碼,則可以將元數據放在全局映射中,並以Class作爲鍵。