我有一個應用程序在clojure中大量使用名爲Vaadin的Java框架。 Vaadin使用clojure的Java「代理」功能使用多個回調。但是,每次在clojure函數中調用代理時,都會有明顯的延遲(有時爲100毫秒)。有什麼辦法可以加快速度嗎?緩慢調用clojure代理
回答
我的理解是,新的reify
宏比proxy
快。如果您只需要實現單個界面,則可以使用它。
例如,如果你需要實現一個java.awt.event.ActionListener
你可以使用如下代碼:
(import 'java.awt.event.ActionListener 'javax.swing.JButton)
(let [a-button (JButton. "Click Me")]
(.addActionListener a-button
(reify ActionListener
(actionPerformed [this ev] (comment do something interesting)))))
由於某些原因,在Vaadin接口com.vaadin.ui.Button $ ClickListener中,reify不起作用。這是beacuase com.vaadin.ui.Button $ ClickListener是一個靜態接口? – Zubair 2010-12-17 20:06:21
@Zubair:不確定。在我開始工作之前,我不得不使用reify函數一段時間。我做的最後一件事是添加'this'變量。你得到了什麼錯誤? – Ralph 2010-12-17 20:40:23
實際上,人們可以用一個「reify」形式實現多個接口。與'proxy'的限制是'reify'不能擴展類。 – 2010-12-18 04:11:50
- 1. XPage代理運行緩慢
- 2. Clojure代理是否總是調用super.method()?
- 3. Clojure代理可以調用另一個代理嗎?
- 4. 處理緩慢的回調函數
- 5. Android - 調試運行緩慢的代碼
- 6. UIWebView調整緩慢
- 7. Clojure代理:限速?
- 8. Clojure代理和@Override?
- 9. 用PHP的shell_exec調用bash - 緩慢
- 10. SQL executeBatch緩慢處理
- 11. CALayer調整大小緩慢
- 12. 非常緩慢的調試
- 13. 替代緩慢的grep
- 14. 緩慢的Excel VBA代碼
- 15. 緩慢處理循環,利用findstr
- 16. 使用Dynamics SDK緩慢處理數據
- 17. Swift:緩慢多次調用WebService
- 18. 從Weblogic 12c緩慢的webservice調用
- 19. 調用requestLayout時可見的緩慢
- 20. Clojure的代理問題 - 使用歡送
- 21. 如何調用Clojure的代碼與Java
- 22. 使用.loc,緩慢
- 23. 通過設置代理的HttpWebRequest緩慢修復爲null
- 24. '圖像拉伸'緩慢的Swing組件的代理?
- 25. 當設置代理時,Facebook緩慢打開
- 26. 在Nginx的WordPress的和MySQL緩慢前反向代理
- 27. 緩慢的瀏覽器緩存與jQuery /阿賈克斯調用
- 28. ActiveMQ:緩慢處理消費者
- 29. XmlDocument和緩慢的模式處理
- 30. 活動管理員登錄緩慢
你嘗試把類型提示? – 2010-12-17 09:27:00
您的意思是爲代理名稱添加類型提示,或者爲實現的方法添加方法參數? – Zubair 2010-12-17 09:53:57
只需打開'反射警告'並將類型提示刪除所有警告。 – 2010-12-17 11:25:20