JVM中運(yùn)行的各種語言底層互通,先天上就具備混合編程的優(yōu)勢。Java在JVM中的老大地位不可撼動,所以諸如Groovy,Kotlin,Scala,Clojure等都可以無痛調(diào)用。
在Groovy中調(diào)用Java
在groovy, kotlin, scala
中調(diào)用java
庫,甚至連導(dǎo)入的關(guān)鍵字都是一樣的,都是import
,如在Groovy中示例如下
C:\Users\Laser>groovysh
九月 12, 2019 6:28:42 下午 java.util.prefs.WindowsPreferences <init>
Type ':help' or ':h' for help.
groovy:000> import java.util.*
===> java.util.*
groovy:000> rand = new Random()
===> java.util.Random@34997338
groovy:000> rand.nextInt(100)
===> 9
groovy:000> rand.nextInt(100)
===> 36
groovy:000>
在Kotlin中調(diào)用java
在kotlin中調(diào)用java的方法如下
C:\Users\Laser>kotlin
Welcome to Kotlin version 1.3.50 (JRE 1.8.0_144-b01)
Type :help for help, :quit for quit
>>> import java.util.*
>>> var rand = Random()
var rand = Random()>>> rand.nextInt(100)
rand.nextInt(100)res5: kotlin.Int = 90
在scala中調(diào)用java
C:\Users\Laser>scala
Welcome to Scala 2.13.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144).
Type in expressions for evaluation. Or try :help.
scala> import java.util
scala> val rand = new util.Random()
rand: java.util.Random = java.util.Random@530ee28b
scala> rand.nextInt(100)
res0: Int = 59
在clojure中調(diào)用java
Clojure這個Lisp方言有點(diǎn)特立獨(dú)行,畢竟不是面向?qū)ο笳Z言,本身就與java水土不服,但也可以調(diào)用文章來源:http://www.zghlxwxcb.cn/news/detail-617189.html
C:\Users\Laser>lein repl
user=> (def randn (java.util.Random.))
#'user/randn
user=> (.nextInt randn 100)
88
user=>
對于其他java中方法的調(diào)用,也需要改成Clojure形式,列入下表,注意Clojure中的.
和空格。文章來源地址http://www.zghlxwxcb.cn/news/detail-617189.html
操作 | Java | Clojure |
---|---|---|
創(chuàng)建類的實(shí)例 | ClassName obj = new ClassName(args) | (def obj (ClassName. args) |
調(diào)用實(shí)例方法 | obj.methodName(args) | (.methodName obj args) |
調(diào)用靜態(tài)方法 | ClassName.methodName(args) | (ClassName/methodName args) |
訪問靜態(tài)屬性 | ClassName.field | ClassName/field |
訪問實(shí)例的屬性 | obj.field | (.field obj) |
修改實(shí)例的屬性 | obj.field = value | (set! (.field obj) value) |
引用Class | ClassName.class | ClassName |
到了這里,關(guān)于在其他jdk語言中調(diào)用java的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!