广告
返回顶部
首页 > 资讯 > 精选 >Kotlin与Java如何相互调用
  • 672
分享到

Kotlin与Java如何相互调用

2023-06-25 21:06:33 672人浏览 泡泡鱼
摘要

这篇文章主要介绍了Kotlin与Java如何相互调用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Kotlin 调用 Java kotlin 关键字转义java 中的方法

这篇文章主要介绍了Kotlin与Java如何相互调用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、Kotlin 调用 Java

kotlin 关键字转义

java 中的方法或变量 是 kotlin 的关键字时,使用反引号 `` 对关键字进行转义

// javapublic class JavaDemo {    String is;    public String getIs() {        return is;    }    public void setIs(String is) {        this.is = is;    }    public void in() {        System.out.println("call java method in");    }    public void multiParams(int... params) {        System.out.println(Arrays.toString(params));    }}
// kotlinfun main() {    // 1. java 中的方法或变量 是kotlin 的关键字时,使用反引号 `` 对关键字进行转义    val demo = JavaDemo()    // 调用 java 的 is 属性,is 是 kotlin 的关键字,使用反引号转义    demo.`is` = "call java field"    println(demo.`is`) // call java field    // 调用 java 的 in 方法,in 是 kotlin 的关键字,使用反引号转义    demo.`in`() // call java method in}

kotlin 可将数组传给 java 的可变数量参数

// kotlin// 使用 * 号将 kotlin 的 数组 传给 java 的 可变数量参数fun main() {val arrayInt = intArrayOf(1, 2, 3)demo.multiParams(*arrayInt) // [1, 2, 3]}

kotlin 获取对象的 java 类

// kotlinfun main() { demo::class.java    demo.javaClass}

二、Java 调用 Kotlin

java 调用 kotlin 类的属性和方法

// kotlinclass KotlinDemo {    var field: String = "kotlin field"    fun method() {        println("call kotlin method")    }}
// javapublic static void main(String[] args) {KotlinDemo demo = new KotlinDemo();    System.out.println(demo.getField()); // kotlin field    demo.method(); // call kotlin method}

java 调用 kotlin 的顶级属性和顶级函数

// kotlinval topLevelField: Int    get() {        println("call kotlin top level field")        return 1    }fun topLevelFunc() {    println("call kotlin top level function")}
// javapublic static void main(String[] args) {TestCallEachOtherKt.getTopLevelField(); // call kotlin top level field    TestCallEachOtherKt.topLevelFunc(); // call kotlin top level function}

java 调用生成指定类名的 kotlin 属性和函数

// kotlin// 指定文件生成的 Java 类或方法的名称。@file:JVMName("CallKtDemo")package com.william.testktvar field: Int = 100fun method() {    println("call CallKtDemo method")}
// javapublic static void main(String[] args) {System.out.println(CallKtDemo.getField());    CallKtDemo.method();}

java 调用 kotlin 的伴生对象的方法和静态方法

// kotlinclass TestCallKotlin {    compaNIOn object {    // 模拟静态方法        fun method1() {            println("call method1")        }// 静态方法        @JvmStatic         fun method2() {            println("call method2")        }    }}
// javapublic static void main(String[] args) {TestCallKotlin.Companion.method1();TestCallKotlin.method2();}

java 调用 kotlin 单例类的方法

// kotlinobject KotlinObject {    fun method1() {        println("call method1")    }    @JvmStatic    fun method2() {        println("call method2")    }}
// javapublic static void main(String[] args) {KotlinObject.INSTANCE.method1();    KotlinObject.method2();}

java 调用 kotlin 含有 lambda 表达式参数的方法

// kotlinobject KotlinObject {    // 参数为 lambda 表达式,入参为 Int,返回值为 Unit    @JvmStatic    fun method3(param: (Int) -> Unit = {}) {        param.invoke(101)    }    // 参数为 lambda 表达式,入参为 Boolean,返回值为 String    @JvmStatic    fun method4(param: (Boolean) -> String = { "" }) {        param.invoke(true)    }}
// javapublic static void main(String[] args) {KotlinObject.method3(new Function1<Integer, Unit>() {     @Override        public Unit invoke(Integer integer) {            System.out.println(integer);            return null;        }    });    KotlinObject.method4(new Function1<Boolean, String>() {        @Override        public String invoke(Boolean param) {            System.out.println("invoke param: " + param);            return param ? "success" : "failed";        }    });}

感谢你能够认真阅读完这篇文章,希望小编分享的“Kotlin与Java如何相互调用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Kotlin与Java如何相互调用

本文链接: https://www.lsjlt.com/news/306364.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Kotlin与Java如何相互调用
    这篇文章主要介绍了Kotlin与Java如何相互调用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Kotlin 调用 Java kotlin 关键字转义java 中的方法...
    99+
    2023-06-25
  • Kotlin与Java相互调用的完整实例
    目录一、Kotlin 调用 Java二、Java 调用 Kotlin附 Github 源码:总结一、Kotlin 调用 Java 1. kotlin 关键字转义 java 中的方法或...
    99+
    2022-11-12
  • Java与Kotlin互调原理讲解
    目录一、Kt调用-Java参数非null的处理@NotNullKotlin中调用二、Kt调用- Java中使用kt关键字声明的变量和方法Kotlin中调用三、Kt调用Java-SAM...
    99+
    2022-11-13
  • Java与Kotlin互调怎么实现
    这篇文章主要讲解了“Java与Kotlin互调怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java与Kotlin互调怎么实现”吧!一、Kt调用-Java参数非null的处理@Not...
    99+
    2023-06-29
  • Python和java 如何相互调用
    目录1.Java调用Python的函数2.在java中调用本机python脚本中的函数3.使用java直接执行python脚本1.Java调用Python的函数 在java类中直接执...
    99+
    2022-11-12
  • 【Kotlin】Kotlin 与 Java 互操作 ① ( 变量可空性 | Kotlin 类型映射 | Kotlin 访问私有属性 | Java 调用 Kotlin 函数 )
    文章目录 一、Kotlin 变量可空性1、Java 与 Kotlin 空值处理区别2、Java 函数返回非空值和控制3、Kotlin 函数调用 Java 函数4、平台类型5、@NotNull 和 @Nullable 注解 二、K...
    99+
    2023-08-22
    kotlin 可空性 Java 类型映射 JvmName注解
  • C++如何实现与Lua相互调用
    今天小编给大家分享一下C++如何实现与Lua相互调用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。概述从本质上来看,其实说是...
    99+
    2023-07-05
  • OC与Swift的相互调用
    OC调用Swift方法 在 Build Settings 搜索 Packaging ,设置 Defines Module 为 YES  2、新建 LottieBridge.swift 文件,自动生成桥 ProductName-Bridgi...
    99+
    2023-09-15
    swift oc 混编 iOS
  • python 与c++相互调用实现
    目录一、c++调用Python1.Python脚本2.C++调用python脚本二、接口方法1.规范化语法三、Pthon调用c++1.基于extern2.基于swig一、c++调用P...
    99+
    2022-11-13
  • Java代码中与Lua相互调用实现详解
    目录一、方案二、性能测试1. ScriptEngine调用方式2. Globals调用方式3. lua调用java三、结论四、其他调用方式?一、方案 Java与Lua相互调用案例比较...
    99+
    2022-11-13
  • Android与JS相互调用的方法
    目录Android调用js的方法实现是引入一个webview用webview打开一个页面调取的JS函数。下面是JS同Android的通信,JS调用Android的函数方法。Andro...
    99+
    2022-11-12
  • Android总结之WebView与Javascript交互(互相调用)
    前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App、Web App、Hybrid App三种方式...
    99+
    2022-06-06
    调用 webview JavaScript Android
  • AndroidView与Compose互相调用实例探究
    目录1. 前言2. Android传统View调用Compose2.1 新建传统View体系的Android项目2.2 项目添加Compose配置2.2.1 在android代码块添...
    99+
    2023-01-30
    Android View与Compose互相调用 Android View与Compose
  • 怎么实现C#与Lua相互调用
    这篇文章主要介绍“怎么实现C#与Lua相互调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么实现C#与Lua相互调用”文章能帮助大家解决问题。一、编译Lua动态链接库1. 编译Windows下使...
    99+
    2023-06-30
  • Java对象与Unix:它们如何相互作用?
    Java和Unix都是非常流行和广泛使用的技术。Java是一种面向对象的编程语言,而Unix是一个操作系统。本文将探讨Java对象和Unix之间的相互作用。 Java对象是Java编程中的基本单元。每个Java对象都有其自己的状态和行为。U...
    99+
    2023-09-20
    关键字 对象 unix
  • IOS开发Swift 与 OC相互调用详解
    目录1、创建桥接文件2、Swift调用OCNS_SWIFT_NAME、NS_SWIFT_UNAVAILABLENS_REFINED_FOR_SWIFT规则3、OC调用Swift4、坑...
    99+
    2022-11-13
  • golang与c语言是怎么相互调用
    这篇文章主要为大家展示了“golang与c语言是怎么相互调用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“golang与c语言是怎么相互调用”这篇文章吧。go语言调用c语言以下为一个简短的例子:...
    99+
    2023-06-21
  • C语言与C++项目实现相互调用
    目录前言一、C++项目调用C的静态库二、C项目调用C++的静态库三、总结前言 extern “c”的作用可以实现c语言和c++相互调用。 1.当我们写c语言代...
    99+
    2022-11-12
  • 基于Scala和Java方法的相互调用
    目录在Java中调用Scala的方法呢?1.首先是静态方法2. JAVA中调用Scala的方法3.Scala中的非静态方法4.Java中的调用scala中调用java方法报错在Sca...
    99+
    2022-11-12
  • 详解python如何调用C/C++底层库与互相传值
    前言 开发环境: Centos 7 + Python 3.5.1 + Qt Creator(只是使用Qt Creator编译而已,并没有使用QT的任何库) Python调用C/C++库,我现在能做到的有...
    99+
    2022-06-04
    底层 详解 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作