Kotlin最简单的入门教程——与Java互相调用
来源:互联网 发布:x战警天启知乎 编辑:程序博客网 时间:2024/06/08 14:21
Kotlin 中调用 Java 代码
import java.util.*fun demo(source: List<Int>) { val list = ArrayList<Int>() // “for”-循环用于 Java 集合: for (item in source) { list.add(item) } // 操作符约定同样有效: for (i in 0..source.size() - 1) { list[i] = source[i] // 调用 get 和 set }}
Java 中调用 Kotlin
// example.ktpackage democlass Foofun bar() {}// Javanew demo.Foo();demo.ExampleKt.bar();
静态方法
class C { companion object { @JvmStatic fun foo() {} fun bar() {} }}//现在,foo() 在 Java 中是静态的,而 bar() 不是:C.foo(); // 没问题C.bar(); // 错误:不是一个静态方法C.Companion.foo(); // 保留实例方法C.Companion.bar(); // 唯一的工作方式
可变参数传递
Java 类有时声明一个具有可变数量参数(varargs)的方法来使用索引。public class JavaArrayExample { public void removeIndices(int... indices) { // 在此编码…… }}在这种情况下,你需要使用展开运算符 * 来传递 IntArray:val javaObj = JavaArray()val array = intArrayOf(0, 1, 2, 3)javaObj.removeIndicesVarArg(*array)目前无法传递 null 给一个声明为可变参数的方法。
Java 反射
Java 反射适用于 Kotlin 类,反之亦然。如上所述,你可以使用 instance::class.java, ClassName::class.java 或者 instance.javaClass 通过 java.lang.Class 来进入 Java 反射。其他支持的情况包括为一个 Kotlin 属性获取一个 Java 的 getter/setter 方法或者幕后字段、为一个 Java 字段获取一个 KProperty、为一个 KFunction 获取一个 Java 方法或者构造函数,反之亦然
已映射类型
一些非原生的内置类型也会作映射:
Java 的装箱原始类型映射到可空的 Kotlin 类型:
请注意,用作类型参数的装箱原始类型映射到平台类型: 例如,List
最后欢迎加入Kotlin QQ群,一起讨论学习:
欢迎关注 微信公号
阅读全文
0 0
- Kotlin最简单的入门教程——与Java互相调用
- Kotlin的互操作——Kotlin与Java互相调用
- Kotlin最简单的入门教程——神秘的Lambda
- Kotlin最简单的入门教程——环境
- Kotlin最简单的入门教程——类和继承
- Kotlin最简单的入门教程——委托
- Kotlin最简单的入门教程——集合
- Android开发,Kotlin的了解与学习(八)-----kotlin与java的互相调用
- Kotlin最简单的入门教程——基础类型(一)
- Kotlin最简单的入门教程——基础类型(二)
- Kotlin最简单的入门教程——可见性修饰符,扩展,数据类,密封类
- Kotlin最简单的入门教程——关键字,操作符,异常,空指针
- Java和Kotlin互相调用需要注意的问题
- Kotlin与Java的共存-Java中调用kotlin代码
- Kotlin与Java的共存-kotlin调用java代码
- Js与java的互相调用
- c++工程与java的互相调用
- JNI JAVA与C的互相调用
- 十六进制字符串异或校验函数,自创
- tensorflow学习笔记(七):TensorFLow实战之style_transfer(风格转换)
- ZOJ 1045
- RS232类通讯协议及应用
- iOS 算法~动脑筋(逻辑思维)
- Kotlin最简单的入门教程——与Java互相调用
- 第四章 SpringMVC--Controller接口控制器详解(3)
- linux软件安装管理与安装RPM时的挂载的概念
- sk_buff 结构体 以及 完全解释 (2.6.16)
- 离散化思想的和它的两种代码
- 转Onpait的原理
- 东芝光耦TLP521-1智能型双电源开关控制器设计的实现
- mysql优化
- web之简单本地包含