Kotlin和Java混合开发必读:基本的互操作

简介: 在使用Kotlin和Java混合开发的时候,涉及到一些基本的互操作 一、属性的读写 1.Kotlin自动识别Java的属性的Getter和Setter 2.Java操作kotlin属性可以通过Getter和Setter的方式二、空安全类型 1.Kotlin空安全类型的原理 空安全类型在Java中是没有的,在Kotlin中才有这个东西的。

在使用Kotlin和Java混合开发的时候,涉及到一些基本的互操作
一、属性的读写
1.Kotlin自动识别Java的属性的Getter和Setter
2.Java操作kotlin属性可以通过Getter和Setter的方式

二、空安全类型
1.Kotlin空安全类型的原理
空安全类型在Java中是没有的,在Kotlin中才有这个东西的。
Kotlin在编译的时候,会增加一个函数的调用,对参数值和返回值进行是否为空安全检查
可以通过事先确定哪些允许为空,哪些不允许。
可以通过使用@Nullable和@NotNull来弥补

三、几类函数的调用问题
1.包级函数:静态方法
包级函数在Kotlin中有,在Java中没有。
Kotlin在编译的时候,会为kotlin生成一个类,这个类包含了所有的包级函数,在Java看来,这些都是静态方法,Java在调用的时候,只需要按照静态方法的方式去调用就好了
2.扩展方法:带Receiver的静态方法
3.运算符重载:带Receiver的对应名称的静态方法

四、几个常见注解的使用
1.@JvmField:将属性编译为Java变量
是Kotlin和Java相互操作属性经常会遇到的问题
如果我们希望Kotlin的属性,无论是看起来还是编译后,都是像Java变量一样,可以使用这个注解
2.@JvmStatic:将对象的方法编译成Java静态方法
3.@JvmOverloads:默认参数生成重载对象,如果想要Java中看到使用这个变量的默认参数,就需要加一下这个注解
4.Kotlin类编译后,会生成静态文件,文件默认是kotlin类+Kt,在Java中可以根据kotlin类+Kt.方法使用,如果想要自定义指定这个类编译后的文件名,使用这个注解

五、NoArg和AllOpen(插件)
1.NoArg为被标记的类生产无参构造,支持Jpa注解,如@Entity
2.AllOpen为被标记的类去掉Final,在Kotlin中,所有的类都默认是Final的,无法被继承,加上这个注解,就去掉了Final,就允许被继承了,支持Spring的注解,如@Component
3.支持自定义注解类型,例如@PoKo

六、泛型
1.通配符Kotlin的”*”对应于Java的”?”
2.协变和逆变,由Java中的extends和super变成了out/in
Java 泛型super怎么理解?与 extends 有何不同?
3.没有Raw类型
1.Java中的List,在Kotlin中就要写成List<*>

目录
相关文章
|
14天前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
58 10
|
7天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
17 2
|
20天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
40 4
|
22天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
53 4
|
26天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
26天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
26天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
27天前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
12天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(1)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(1)
21 0
|
19天前
|
Java 数据库连接 编译器
Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin 兼容 Java 遇到的最大的“坑”
12 0