2010-03-23 85 views
4

我打电话使用Clojure的,像这样的twitter4j库:如何在Clojure中调用公共类的非公共方法?

(def twitter (. (TwitterFactory.) getInstance)) 

,当我把它作为一个脚本这工作得很好。但是当我使用gen-class时,我得到:

java.lang.IllegalArgumentException: Can't call public method of non-public class: public java.lang.Object twitter4j.TwitterFactoryBase.getInstance() 

是否有解决方法?

+0

你能发布你的gen-class代码的骨架? – 2010-03-24 01:48:54

回答

0

尝试:

(def twitter (.getInstance (new TwitterFactory))) 
+0

这没有任何区别。为什么呢? – sramsay 2010-03-24 04:49:07

+0

我不知道是什么原因造成的差异(作为clojure新手)。但它适用于我:) – lazy1 2010-03-24 19:38:03

+0

等待。真?我认为差异只是语法糖(我实际上更喜欢你的方式 - 对我来说似乎是“口齿伶俐”)。 – sramsay 2010-03-24 21:51:21