我有一个应用程序在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