我有無法向類添加註釋的情況,但有什麼方法可以將某種元數據添加到您無法編輯的bean(代碼),但重構後還能繼續嗎?如果我擴展bean,然後向該類添加註釋,那該怎麼辦?替代註釋?
替代註釋?
回答
舊的方式,使用標記界面,即沒有方法的接口,如Serializable
或Cloneable
。
根據您的IDE,您所需要做的就是引用您的類或方法或文本文件中的字段,如屬性或XML。您的IDE將找到這些並提供執行文本查找/替換時重命名類/方法/字段。 (雖然有些refactors這種移動的方法到另一個類將無法工作這麼好)
你可以考慮AOP http://static.springsource.org/spring/docs/2.5.x/reference/aop.html
它可以讓你從外部添加行爲的具體方法,而無需編輯類。額外的代碼可以在方法之前,之後或周圍。
沒有告訴我們你想要達到什麼目的,很難猜出你需要什麼。
好主意,但是你怎麼能夠使用AOP提供的信息作爲其他代碼的元數據? (對不起,我刪除了我的意見在其他答案,我沒有看到你的答覆) –
我不確定,因爲我說這個問題是模糊的。它只是作爲一種可能的解決方案,將行爲添加到類中而不改變它,這基本上是註釋(可以)提供的。元數據可能意味着很多不同的東西。 – Guillaume
您是否需要元數據以供其他代碼使用或它應該對人類可讀?
可以使用代碼儀器來任何數據添加到您的類(Javassist進行,一些AOP等)
你可以添加一個平行的類層次與元數據。類似BeanInfo
類爲Java bean提供元數據。
如果您無法修改代碼,則可以將元數據放在全局映射中,並以Class作爲鍵。
- 1. Optaplanner:替代註釋
- 2. @Transactional註釋的替代
- 3. 你有什麼替代註釋?
- 4. 替代方法註釋在Javascript
- 5. 替代加載jQuery的條件註釋
- 6. 使用preg_replace代替php中的註釋
- 7. 條件註釋替代自舉3
- 8. 用於註釋的PHP替代語法
- 9. Spring @Transactional註釋的嚴格替代
- 10. Eclipse鏈接替代@PreUpdate註釋?
- 11. 註釋代表另一個註釋
- 12. 在Jersey中有條件地應用@Provider註釋或@Provider註釋的替代
- 13. 如何替換註釋
- 14. Javascript代碼註釋
- 15. 如何替換HTML註釋<! - 註釋 - >用的String.Empty
- 16. sed替換(單行)C註釋與C++註釋
- 17. 如何替換 - (BOOL)應用程序:openURL:sourceApplication:註釋:(id)註釋
- 18. M3模型中的@src和@decl註釋的替代實現
- 19. 替代品@formula註釋或SQL解密函數
- 20. 是否有任何替代傑克遜@JsonTypeInfo註釋
- 21. 什麼是運行時保存的註釋的scala替代
- 22. spring-data mongodb用XML替代註釋的POJO映射
- 23. 註釋可以完全替代標記界面嗎?
- 24. 休眠@NotEmpty註釋相當於Javax.package或替代
- 25. 使用xml代替jaxb註釋的Java webservice工具?
- 26. 創建Java註釋以代碼替換令牌
- 27. Closure Compiler JsDoc註釋替換源代碼中的測試?
- 28. Struts2註釋替代標籤結果類型的struts.xml
- 29. Solr的或替代指標XML註釋文本文件
- 30. 靜態函數中@Value註釋的替代方法
你能澄清你打算如何使用元數據嗎? –