如何在 Java 和 Kotlin 之间进行互操作
Posted Android编程精选
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Java 和 Kotlin 之间进行互操作相关的知识,希望对你有一定的参考价值。
01
02
public Set<String> toSet(Collection<String> elements){
//TODO
}
@NotNull
Set<@NotNull String> toSet(@NotNull Collection<@NotNull String> elements){
//TODO
}
class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
val user = User()
user.name = "四爷" //赋值
val age = user.age //获取age字段值
Utils.`is`()
a+b => a.plus(b)
03
@file:JvmName("ExtUtils")
package com.demo.javaAndKotlin
fun a(): String {
...
}
fun b(): String {
...
}
Duplicate JVM class name
@file:JvmMultifileClass
@file:JvmName("ExtUtils")
package com.demo.javaAndKotlin
fun c(str: Any): String {
...
}
data class Person(
@JvmField var name: String,
@JvmField var age: Int
)
//java中调用
Person person = new Person("",1);
person.name = "";
person.age = 10;
data class Person(
@set:JvmName("changeName")
var name: String,
@JvmField var age: Int,
@get:JvmName("likesPink")
var likesPink: Boolean
){
lateinit var address:String
}
class MyService {
internal fun doWork() {
...
}
companion object {
fun schedule(context: Context) {
...
}
}
}
//在Java中调用
MyService.Companion.schedule(this);
class MyService {
internal fun doWork() {
...
}
companion object {
@JvmStatic
fun schedule(context: Context) {
...
}
}
}
//在Java中调用
MyService.schedule(this);
@JvmOverloads
fun Bitmap.resize(width: Int, height: Int = 200) {
...
}
//java调用
ExtUtils.resize(bitmap,100);
Int, height: Int = 200) { ...}//java调用ExtUtils.resizeBitmap(bitmap,100); Bitmap.resize(width:
推荐↓↓↓
长
按
关
注
以上是关于如何在 Java 和 Kotlin 之间进行互操作的主要内容,如果未能解决你的问题,请参考以下文章 KotlinKotlin 与 Java 互操作 ③ ( Kotlin 中处理 Java 异常 | Java 中处理 Kotlin 异常 | @Throws 注解处理异常 | 函数类型互相操作 )