2010-03-23 83 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