如何在 Clojure 中调用公共类的非公共方法?

发布于 2024-08-26 23:58:00 字数 353 浏览 5 评论 0 原文

我使用 Clojure 调用 twitter4j 库,如下所示:

(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()

有解决方法吗?

I'm calling the twitter4j library using Clojure like so:

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

This works fine when I call it as a script. But when I use gen-class, I get:

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

Is there a workaround for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风吹雨成花 2024-09-02 23:58:00

我自己没有这方面的经验,但是 Meikel Brandmeyer 曾经写过一篇关于 gen-class 的很好的文章,也许这会对你有所帮助:

http://kotka.de/blog/2010/02/gen-class_how_it_works_and_how_to_use_it.html

I have no experience with it myself, but Meikel Brandmeyer did a nice writeup on gen-class once, maybe that will help you:

http://kotka.de/blog/2010/02/gen-class_how_it_works_and_how_to_use_it.html

似梦非梦 2024-09-02 23:58:00

尝试:

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

Try:

(def twitter (.getInstance (new TwitterFactory)))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文