ClojureJava接口

ClojureJava接口 首页 / Clojure入门教程 / ClojureJava接口

Clojure代码最后在Java虚拟环境上运行,因此,只有Clojure能够利用Java的所有函数才有意义,在本章中,让我们讨论Clojure与Java之间的关联。

调用Java方法

可以使用点表示法来调用Java方法,一个示例是字符串,由于Clojure中的所有字符串都是Java字符串,因此您可以在字符串上调用普通的Java方法。

(ns Project
   (:gen-class))
(defn Example []
   (println (.toUpperCase "Hello Learnfk")))
(Example)

上面的程序产生以下输出,从代码中可以看到,如果只为任何字符串方法调用点表示法,那么它也可以在Clojure中使用。

HELLO LEARNFK

带参数Java方法

(ns Project
   (:gen-class))
(defn Example []
   (println (.indexOf "Hello Learnfk","e")))
(Example)

上面的程序产生以下输出。您可以从上面的代码中看到,我们正在将参数" e"传递给indexOf方法。上面的程序产生以下输出。

1

创建Java对象

可以使用与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)

上面的程序产生以下输出。

链接:https://www.learnfk.comhttps://www.learnfk.com/clojure/clojure-java-interface.html

来源:LearnFk无涯教程网

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)

上面的程序产生以下输出。

链接:https://www.learnfk.comhttps://www.learnfk.com/clojure/clojure-java-interface.html

来源:LearnFk无涯教程网

First Element

Java运行代码

Clojure代码可以使用Java命令运行。以下是如何完成此操作的语法。

java -jar clojure-1.2.0.jar -i main.clj

您必须提到Clojure jar文件,以便所有基于Clojure的类都将加载到JVM中。 " main.clj"文件是需要执行的Clojure代码文件。

Java内置函数

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

教程推荐

AI 音视频创作入门课 -〔唐子轩〕

大数据经典论文解读 -〔徐文浩〕

讲好故事 -〔涵柏〕

高楼的性能工程实战课 -〔高楼〕

视觉笔记入门课 -〔高伟〕

Java业务开发常见错误100例 -〔朱晔〕

即时消息技术剖析与实战 -〔袁武林〕

Vue开发实战 -〔唐金州〕

推荐系统三十六式 -〔刑无刀〕

好记忆不如烂笔头。留下您的足迹吧 :)