在其他jdk语言中调用java

这篇具有很好参考价值的文章主要介绍了在其他jdk语言中调用java。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JVM中运行的各种语言底层互通,先天上就具备混合编程的优势。Java在JVM中的老大地位不可撼动,所以诸如Groovy,Kotlin,Scala,Clojure等都可以无痛调用。

在Groovy中调用Java

groovy, kotlin, scala中调用java库,甚至连导入的关键字都是一样的,都是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中调用java

在kotlin中调用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中调用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中调用java

Clojure这个Lisp方言有点特立独行,毕竟不是面向对象语言,本身就与java水土不服,但也可以调用

C:\Users\Laser>lein repl
user=> (def randn (java.util.Random.))
#'user/randn
user=> (.nextInt randn 100)
88
user=>

对于其他java中方法的调用,也需要改成Clojure形式,列入下表,注意Clojure中的.和空格。文章来源地址https://www.toymoban.com/news/detail-617189.html

操作 Java Clojure
创建类的实例 ClassName obj = new ClassName(args) (def obj (ClassName. args)
调用实例方法 obj.methodName(args) (.methodName obj args)
调用静态方法 ClassName.methodName(args) (ClassName/methodName args)
访问静态属性 ClassName.field ClassName/field
访问实例的属性 obj.field (.field obj)
修改实例的属性 obj.field = value (set! (.field obj) value)
引用Class ClassName.class ClassName

到了这里,关于在其他jdk语言中调用java的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Go】四、rpc跨语言编程基础与rpc的调用基础原理

    早期 Go 语言不使用 go module 进行包管理,而是使用 go path 进行包管理,这种管理方式十分老旧,两者最显著的区别就是:Go Path 创建之后没有 go.mod 文件被创建出来,而 go module 模式会创建出一个 go.mod 文件用于管理包信息 现在就是:尽量使用 Go Modules 模式 另外,我们在引入包

    2024年02月19日
    浏览(42)
  • Go语言和Java编程语言的主要区别

    目录 1.设计理念: 2.语法: 3.性能: 4.并发性: 5.内存管理: 6.标准库: 7.社区和支持: 8.应用领域:         Go(也称为Golang)和Java是两种不同的编程语言,它们在设计理念、语法、性能、并发性等方面存在许多区别。以下是它们之间的一些主要区别:         Go语

    2024年04月17日
    浏览(71)
  • openPLC_Editor C语言编程 在mp157 arm板上调用io等使用记录

    1.编程界面比较简单,具备PLC开发编程的四种编程方式。梯形图语言LD ,指令表语言IL,结构化文本语言ST,功能模块图语言FBD。  2.官方使用手册。学习资料实在是太少,目前都是自己比较费劲的研究。         3.2 Creating Your First Project on OpenPLC Editor – Autonomy  3.openplc 在其

    2024年04月10日
    浏览(45)
  • 极语言中文编程_学习笔记

    更多有关极语言中文编程的信息请看文件夹下的sec.htm或者官网的编程说明书 http://sec.yihuolao.com/sec.htm 。 极语言的官方网址是: http://sec.yihuolao.com/ http://sec.z5x.cn/ http://www.z5x.cn/ 极语言入门教学视频:https://www.ixigua.com/7128748847265743371 极语言游戏教学视频:https://www.ixigua.com/712

    2024年02月05日
    浏览(50)
  • 【JAVA】面向对象的编程语言(继承篇)

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中,我们介绍过面向对象的编程语言,今天我们就来就进入到JAVA面对对象的编程世界,今天我们主要来介绍面向对象的编程范式中一个重要的概念——继承。 继承是java面向对象编程技术的一块基石,因为

    2024年02月09日
    浏览(45)
  • 编程语言比拼之Java VS C++

    学Java还是C++?   Java和C++都是非常受欢迎的编程语言,各有各的优势和适用场景。以下是对它们的简要比较: 性能:C++通常被认为是一种更高效的编程语言,适用于对性能要求较高的应用程序,如游戏开发、嵌入式系统和高频交易等。C++具有更接近底层的控制能力,允许开发

    2024年02月13日
    浏览(43)
  • 【Java语言面向对象】(1)面向过程编程

    人机猜拳的第一版(下方是程序源码) 人机猜拳(面向过程版本) 三部分组成 初始化 游戏开始 游戏数据统计 逐步完成,并阶段测试。 面向过程整体的思路:做一件事,分为多个步骤,每个步骤之间是有序的,最后按序完成。 面向过程的优缺点: 优点:符合人类思维,简

    2023年04月09日
    浏览(54)
  • TIOBE 9月编程语言榜出炉!这个语言强势而出,Java地位不保?搞笑!

    TA来了!TA来了 ! TA带着最新编程语言排行榜走来了 近日 TIOBE 公布了2023年9月的编程指数信息 话不多说,我们这就去看看! Java排名被威胁? 上个月,Julia 历史上首次跻身 TIOBE 指数前 20 名。这个月 Julia 再次退出,被 Kotlin 取代。 Kotlin 是另一种有前途的语言。 这一切都始于

    2024年02月08日
    浏览(40)
  • Golang vs Java: 一场编程语言的较量

    在IT行业飞速发展的过程中,编程语言扮演着至关重要的角色。作为开发人员,选择合适的编程语言对于构建高效、可靠和可维护的应用程序至关重要。在这场编程语言的较量中,Golang和Java无疑是两个备受青睐的选择。我们现在将对这两种语言进行全面对比,探讨它们在性能、简洁

    2024年04月17日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包