kotlin
1、在Java中调用Kotlin的方法
在Util.kt文件中声明了一个echo方法:
在JavaMain.java中调用:
这里注意的是:声明在文件中,而不是中,所以在Java代码中是通过文件名+kt.方法名
2、Java和Kotlin中调用Kotlin中object修饰的类
在KotlinMain.kt文件中声明:
在KotlinMain.kt文件中调用:类名+方法名
在JavaMain.java文件中调用:类名+INSTANCE+方法名
这里的是如何来的?我们将KotlinMain.kt文件转换为Java代码就能清楚的知道,在被编译成Java代码的时候修饰的类会生成一个静态对象。且看编译后的代码:
看到这段代码,大家就能轻而易举的明白在Java代码中如何调用方法了。
如何摆脱INSTANCE
Kotlin中被修饰的方法,编译成Java代码后就变成了一个静态方法,所以在Java中调用是不需要加上INSTANCE的。
3、Kotlin中调用class对象(JavaClass和KotlinClass)
这里的是一个java类,而是一个Kotlin类。
在Kotlin语法中,调用Java的必须使用类名::class.java。
如果这个参数是Kotlin的类,我们可以写成和Java一样的,传参的时候传入。那么既然是Kotlin调用Kotlin,肯定有更加简单的写法了,在明确自己调用的是Kotlin类,我们就可以写成:
这里我们传入的不是对象了,而是对象,在调用的时候也就不用在后面加上,直接使用类名::class就行了。
4、Kotlin调用Java中的变量,此变量名在Kotlin中为关键字:
如果Java中声明的变量的变量名在Kotlin中不是关键字,那么直接用类名.变量名,如:
如果Java中声明的变量的变量名在Kotlin中是关键字,再调用上面的写法编译器就会发出警告"expecting an element",编译器都期待有这个元素,所以我们得写成这样:
)
使用一对反引号将变量名包围起来,这样编译器就会正确的执行了。
领取专属 10元无门槛券
私享最新 技术干货