调用Java类
调用Constructor、Method、Field
(new classname)
(new java.util.Random)
java.util.Random@4f1ada
(def rnd (new java.util.Random))
#'user/rnd
(. class-or-instance member-symbol & args)
(. class-or-instance (member-symbol & args))
(. rnd nextInt)
-791474443
8
(import [& import-lists])
; import-list => (package-symbol & class-name-symbols)
(import '(java.util Random Locale)
'(java.text MessageFormat))
nil
(new Random)
==
(Random.)
最终结果相同,语法方式不同
(Classname/membername);static field or method
(System/currentTimeMillis)
1226260030788
(. rnd nextInt)
==
(.nextInt rnd)
想同,语法方式不同
(doto class-or-inst & member-access-forms)
(doto (System/getProperties)
(.setProperty "name" "Stuart")
(.setProperty "favoriteColor" "blue"))
Java |
Clojure |
Sugared |
new Widget("red") |
(new Widget "red") |
(Widget. "red") |
Math.PI |
(. Math PI) |
Math/PI |
System.currentTimeMillis() |
(. System currentTimeMillis |
(System/currentTimeMillis) |
rnd.nextInt() |
(. rnd nextInt) |
(.nextInt rnd) |
person.getAddress().getZipCode() |
(. (. person getAddress) getZipCode) |
(.. person getAddress getZipCode) |
分享到:
相关推荐
Java 8的Date-Time API支持时区转换,`clojure.java-time`同样提供了这样的功能。你可以方便地将日期时间对象转换为不同的时区,这对于处理全球数据尤其有用。 6. **互操作性**: `clojure.java-time`库的一个...
新功能:支持Java 9,10,11,12 Nginx工作进程之间的发布/订阅 基于共享内存的共享地图和基于Ring会话的共享地图 支持Sente,请参阅 支持WebSocket的按消息压缩扩展(PMCE) 用于将Nginx-Clojure嵌入到标准...
主要特性:从 Java 中保护你的 Clojure 程序,进行安全的互操作,正确的使用外部 Java 库。Typed Clojure 支持关键字映射的使用,类型检测器中包含有用的映射操作,包括关键字查找,添加或者移除关键字,合并映射...
o Clojure对java.nio的支持。 将clojure.java.io的输入流,输出流和复制功能扩展到java.nio类。 定义新的强制功能缓冲区,字节缓冲区,字符缓冲区,双缓冲区,浮点缓冲区,整数缓冲区,长缓冲区,短缓冲区,通道,可...
Java的稳定性、企业级支持和丰富的库资源,加上Clojure的创新性和并发处理能力,共同构建了强大的技术栈。无论你是初学者还是经验丰富的开发者,深入学习这两种语言都将对你的职业生涯产生积极影响。
`clojure.java.jdbc`库还支持事务处理,这对于确保数据库操作的一致性非常重要。你可以使用`with-transaction`宏来包围一系列操作: ```clojure (jdbc/with-transaction [tx db-conf] ;; 在这里执行一系列操作 ) ``...
此外,Clojure支持懒惰求值和高阶函数等概念,这些都有助于编写更加模块化和复用性强的代码。 - **Concurrency**:Clojure通过软件事务内存(Software Transactional Memory, STM)实现了安全和高效的并发处理。STM...
Clojure是一种基于Lisp家族的函数式编程语言,它运行在Java虚拟机(JVM)上,同时也支持JavaScript和其他平台。Clojure的设计目标是提供一个高效、并发、可移植的环境,适合解决现代软件开发中的复杂问题。在这个...
Clojure 1.6 是一个基于 Lisp 语系的现代函数式编程语言,它运行在Java虚拟机(JVM)上。Lisp是一种历史悠久且影响力深远的编程范式,以其特有的括号语法和强大的宏系统著称。Clojure的设计目标是提供一种与Java平台...
clojure.java.jdbc 一个低层的Clojure包装器,用于基于JDBC的数据库访问。 该项目是“稳定的”(不再是“活动的”)。 实际上,它已被取代。 有关兼容的高级DSL和迁移库,请参阅。 以前称为clojure.contrib.sql ...
- **特点**:Clojure支持纯功能式编程,即强调函数的纯净性和不可变数据结构。这意味着函数的执行结果仅取决于其输入参数,并且函数不会修改外部状态。 - **应用场景**:广泛应用于Web开发、数据分析、并行计算等...
Eclipse 是一个流行的开源集成开发环境(IDE),广泛用于Java开发,但同样可以支持多种其他语言,包括Clojure。 在Eclipse中使用Clojure开发,你需要安装Leiningen,这是一个Clojure项目管理工具,它可以帮助你创建...
Clojure是由Rich Hickey设计的,它运行在Java虚拟机(JVM)上,同时也支持JavaScript环境和其他平台。这本书涵盖了从基础语法到高级特性的广泛内容,对于想要学习或提升Clojure技能的程序员来说,是一份宝贵的资源。...
Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,具有强大的并发处理能力和丰富的库支持。 首先,《Clojure Programming》是一本全面介绍Clojure语言的指南,由Chas Emerick、Crispin Cowan...
Clojure支持高阶函数,这极大地增强了其灵活性和表达能力。 - **不可变数据**: 在Clojure中,数据一旦创建就无法修改,这对于并发编程尤为重要,因为它消除了锁的需求。 #### 五、Clojure与并发编程 - **并发支持**...
Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。Clojure的设计目标是提供一种静态类型的、并发的、内存安全的语言,同时保持Lisp的简洁性和灵活性。在这个压缩包...