【问题标题】:How to import Java class in ClojureScript?如何在 ClojureScript 中导入 Java 类?
【发布时间】:2015-02-10 00:20:33
【问题描述】:

我在 SublimeText 中使用 ClojureScript 浏览器 REPL,其中包含某些 Java 方法:

(.toUpperCase "blub") --> "BLUB"

但是,我想使用.toBinaryString,但不包括java.lang.Integer,我不确定如何导入它。无论我对% 使用什么格式,(import %) 都不起作用;它总是抛出:

无法读取未定义的属性“调用”

我的问题分为两部分;如何查看 REPL 中包含哪些 Java 库,以及如何使用未包含的其他库?

【问题讨论】:

    标签: java clojure clojurescript read-eval-print-loop clojure-java-interop


    【解决方案1】:

    ClojureScript 编译为 JavaScript,您调用的 toUpperCase 方法来自 JavaScript String 而不是 Java。在 ClojureScript 中,您可以使用 Java 的唯一时间是在编写宏时。但那是因为宏是用 Clojure 编写的,而不是 ClojureScript。

    This 列出了 Clojure 和 ClojureScript 之间的差异。

    【讨论】:

    • 我已经阅读了该文章以及有关 cljs-js 互操作的几篇文章,但是每当我尝试使用 js 库(在本例中为 toString 函数的 prototype.js)时,我都会收到错误消息。这是在我的 project.clj 文件中包含一个 :libs 和 :foreign-libs 子句并在命名空间中要求它之后。我不明白。
    • 请创建另一个关于该问题的问题,或在 stackoverflow 中搜索。你最初的问题是关于 Java 互操作的,不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    相关资源
    最近更新 更多