首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闭包invokeLater空指针

闭包invokeLater空指针
EN

Stack Overflow用户
提问于 2015-06-16 15:23:18
回答 1查看 134关注 0票数 0

此代码:

代码语言:javascript
复制
(import 'javax.swing.SwingUtilities)
(SwingUtilities/invokeLater (print "hi"))

导致此错误:

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
...

我不知道这是否是一个问题,因为尽管出现了错误,代码本身实际上仍然有效(打印到REPL)。

但是,修改swing组件似乎不能正常工作:回调的carot监听器(.setText myTextArea“.setText”)会导致文本在“某些文本”之间交替,并在单击时将其设置为空,每次在nrepl-server的日志中抛出相同的错误。

以后调用的方式是否有问题,或者myTextArea的问题与此无关?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-16 17:48:17

SwingU实用程序/invokeLater采用Runnable。Clojure函数实现Runnable。但是,您要将(println "Hi")的结果(即nil )传递给invokeLater,从而获得NPE。您需要将它作为要调用的函数传递,而不是自己调用它。此示例将匿名函数传递给invokeLater。

代码语言:javascript
复制
(import 'javax.swing.SwingUtilities)
(SwingUtilities/invokeLater #(print "hi"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30871789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档