Clojure代码最后在Java虚拟环境上运行,因此,只有Clojure能够利用Java的所有函数才有意义,在本章中,让我们讨论Clojure与Java之间的关联。
可以使用点表示法来调用Java方法,一个示例是字符串,由于Clojure中的所有字符串都是Java字符串,因此您可以在字符串上调用普通的Java方法。
(ns Project (:gen-class)) (defn Example [] (println (.toUpperCase "Hello Learnfk"))) (Example)
上面的程序产生以下输出,从代码中可以看到,如果只为任何字符串方法调用点表示法,那么它也可以在Clojure中使用。
链接:https://www.learnfk.comhttps://www.learnfk.com/clojure/clojure-java-interface.html
来源:LearnFk无涯教程网
HELLO LEARNFK
(ns Project (:gen-class)) (defn Example [] (println (.indexOf "Hello Learnfk","e"))) (Example)
上面的程序产生以下输出。您可以从上面的代码中看到,我们正在将参数" e"传递给indexOf方法。上面的程序产生以下输出。
1
可以使用与Java相似的'new'关键字在Clojure中创建对象 。
(ns Project (:gen-class)) (defn Example [] (def str1 (new String "Hello")) (println str1)) (Example)
上面的程序产生以下输出,您可以从上面的代码中看到,我们可以使用'new'关键字从Java中现有的String类创建新对象,就像在Java中一样,我们可以在创建对象时传递值,上面的程序产生以下输出。
Hello
以下是另一个示例,该示例显示了如何创建Integer类的对象 并在常规Clojure命令中使用它们。
(ns Project (:gen-class)) (defn Example [] (def my-int(new Integer 1)) (println (+ 2 my-int))) (Example)
上面的程序产生以下输出。
3
我们还可以使用import命令在名称空间中包含Java库,以便可以轻松访问类和方法。
在示例中,我们使用import命令从 java.util.stack 库中导入类。然后,我们可以按原样使用堆栈类的push和pop方法。
(ns Project (:gen-class)) (import java.util.Stack) (defn Example [] (let [stack (Stack.)] (.push stack "First Element") (.push stack "Second Element") (println (first stack)))) (Example)
上面的程序产生以下输出。
First Element
Clojure代码可以使用Java命令运行。以下是如何完成此操作的语法。
java -jar clojure-1.2.0.jar -i main.clj
您必须提到Clojure jar文件,以便所有基于Clojure的类都将加载到JVM中。 " main.clj"文件是需要执行的Clojure代码文件。
Clojure可以使用Java的许多内置函数。其中一些是-
Math.PI 函数 - Clojure可以使用Math方法计算PI的值,以下是示例代码。
(ns Project (:gen-class)) (defn Example [] (println (. Math PI))) (Example)
上面的代码产生以下输出。
3.141592653589793
系统属性-Clojure也可以查询系统属性。
(ns Project (:gen-class)) (defn Example [] (println (.. System getProperties (get "java.version")))) (Example)
根据系统上Java的版本,将显示相应的值,以下是示例输出。
1.8.0_45
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)