Kotlin-Java互调

2022-05-13  本文已影响0人  izheer

object关键字

object修饰的类,表示是类内部的所有方法以及变量都是静态

java调用kotlin :

kotlin类 MyClass.kt:

class MyClass{
    fun show2(info:String){
    //todo 
    }
}
fun show1(info:String){
    //todo 
}

1、kotlin类外的方法,使用 [类名]+Kt.[方法名]调用;

如:MyClassKt.show1("调用kotlin类外的方法")

2、调用kotlin类内的方法,使用 new [类名].[方法名];

 如:new MyClass().show2("调用kotlin类内的方法")
kotlin 调用 java:

1、当java中使用了kotlin中的关键字时,需要使用单引号''转义

如 :当java使用in作为变量,导致in关键字冲突,那么在kotlin中这样调用 JavaClass.'in'

2、java中的getxxx() 方法,在kotlin中是默认省略了get的,直接使用xxx进行调用

如:java 中 String getName() kotlin中这样调用:var str : String ? = JavaClass().name

其中?是表示可为空,因为 JavaClass().name是带有!感叹号的标志。

3、形参是java的类字节 Class,形参是kotlin的类字节码的调用方式:

fun main(){
   //调用方式
    show1(JavaClass::class.java) 
    show2(JavaClass::class)
}

//形参是Java类的字节码
fun show1(class : Class<JavaClass>){

}

//形参是 kotlin类的字节码
fun show(class:Class<KtClass>){

}

上一篇下一篇

猜你喜欢

热点阅读