Clojure 支持Java

调用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

(. rnd nextInt 10)
    8

(import [& import-lists])
; import-list => (package-symbol & class-name-symbols)

(import '(java.util Random Locale)
'(java.text MessageFormat))
    nil

Syntactic Sugar


(new Random)
==
(Random.)
最终结果相同,语法方式不同

(Classname/membername);static field or method

(. Math PI)
 Math/PI

(System/currentTimeMillis)
    1226260030788

(. rnd nextInt)
==
(.nextInt rnd)
想同,语法方式不同

(doto class-or-inst & member-access-forms)

(doto (System/getProperties)
(.setProperty "name" "Stuart")
(.setProperty "favoriteColor" "blue"))


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








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值