我正在尋找一些類似於Python的getattr,hasattr,callable等Java中的元編程功能。如果沒有,是否有任何良好的外部庫?在java中是否有getattr,callable和其他元編程功能?
4
A
回答
1
正如Eduardo評論的那樣,您可以使用反射。下面是Sun公司(甲骨文現在)的文章吧:
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
這應該讓你在正確的方向前進。
1
也是JavaBean規範在這方面的dabbles。
看到java.beans.BeanInfo中
還有一些庫,如公地的BeanUtils是建立在反思,試圖更多元的處理,等等。
1
一些用於元編程的最佳「庫」採用在JVM上運行的替代語言的形式;例如,Groovy語言是一種稍微簡化的Java,具有更好的元編程支持(以及其他功能)。
0
除了反思之外,您可能對AOP感興趣(例如,通過AspectJ),這允許對各種Java執行序列進行方法調用,轉換,攔截等的預處理和/或後處理。
無法攔截對不存在的方法的調用,因爲無法編譯此類代碼。
相關問題
- 1. CURLOPT_TIMEOUT,是否有「其他」功能?
- 2. SetInterval是否影響其他功能?
- 3. 是否有可能在Eclipse中有一個Java程序來編譯其他語言比Java?
- 4. 是否有可能在Linux中捕獲其他進程信號?
- 5. 是否有可能在其他應用程序中充氣RemoteViews?
- 6. 我是否正確使用callable和futures多線程(java)?
- 7. 功能 - Java編程
- 8. 功能編程和馬爾可夫鏈是否有關聯?
- 9. 是否有可能在Java中有兩個其他地圖支持的Map?
- 10. 功能與其他功能
- 11. 這是可能的java或任何其他編程語言
- 12. 是否有可能在其他文件中獲得AJAX成功變量的值?
- 13. 具有默認功能和其他功能的Javascript對象
- 14. 是否有可能在Java中擴展迭代器的功能?
- 15. 在vb.net中,是否有其他變量?
- 16. 是否有人在Python /其他語言中使用元元類/元元元類?
- 17. C++編輯和繼續功能是否可用於VC++以外的任何其他功能?
- 18. java是否具有鉗位功能?
- 19. 如何在其他功能
- 20. 是否有任何其他編程謎語?
- 21. 機器人編程遊戲robocode是否有其他選擇?
- 22. PHP是否爲'方法重載'提供了一個規定,就像java和一些其他編程語言一樣?如果沒有,是否有其他選擇?
- 23. 是否有可能在JavaScript中包含其他字符jquery.Trim()
- 24. 是否有可能在CSS中選擇其他三個組?
- 25. 是否有可能在Ansible中執行其他檢查?
- 26. Coverity是否有其他API
- 27. 從其他程序集加載類是否有性能損失?
- 28. 是否有在C/C++相同功能以GNU-R,其中()?
- 29. 功能/程序更新(ALTER)其他功能/程序
- 30. 是否有可能以編程方式在內存中編譯java源代碼?
Java有Reflection,但它不像Python對元編程的支持一樣可用。像Java和C#這樣的語言(尤其是前者,後者在較小的程度上)是在程序員不應該過於「聰明」的前提下設計的。 – pyon 2011-03-19 18:39:22