美文网首页
2021-11-16(Kotlin学习笔记)Kotlin Jav

2021-11-16(Kotlin学习笔记)Kotlin Jav

作者: 简单快乐6 | 来源:发表于2021-11-16 15:11 被阅读0次

java 调用Kotlin

  1. 创建kotlin 文件 MyUtils.kt
class MyUtils{
    fun show(info: String){
        println(info)
    }
}

// MyUtils.kt
fun show(info: String){
    println(info)
}
  1. 创建Java 类,Client
public class Client {

    public static void main(String[] args) {

        MyUtilsKt.show("Xiao Biao");

        new MyUtils().show("xiao baio 2");
    }
}

3.查看结果

Xiao Biao
xiao baio 2

kotlin 调用 java

  1. 创建JavaStudent类
public class JavaStudent {

    public static String in = "INNNNNNN";

    public String getString(){
        return "xiao biao";
    }
}
  1. 创建kotlin 文件 Client.kt
fun main(){

    //解决冲突
    println(JavaStudent.`in`)
    // 调用Java函数 String! 由于是! 最好 var str: String? =
    // JavaString().string.length 错误示范

    var str : String? = JavaStudent().string
    println(str?.length)
}

kotlin Class 怎么传

  1. 行参 Java
fun showClass(clazz: Class<JavaStudent>){}

showClass(JavaStudent::class.java)
  1. 全部是 Kt
fun showClass2(clazz: KClass<KtStudent>){}

showClass2(KtStudent::class)

kotlin 调用java interface

  1. 创建java类,JavaCallback,JavaManager
public interface JavaCallback {
    void show(String info);
}
public class JavaManager {
    
    public void setCallback(JavaCallback javaCallback){
        javaCallback.show("Xiao bai");
    }

}
  1. Client.kt调用
fun main(){

    //解决冲突
    println(JavaStudent.`in`)
    // 调用Java函数 String! 由于是! 最好 var str: String? =
    // JavaString().string.length 错误示范

    var str : String? = JavaStudent().string
    println(str?.length)

    // Class  Java Kt
    showClass(JavaStudent::class.java)

    showClass2(KtStudent::class)

    //kt 使用 java cb
    //第一种
    JavaManager().setCallback(JavaCallback {
        println(it)
    })
    //第二种
    JavaManager().setCallback { info -> println(info) }
    JavaManager().setCallback(object : JavaCallback{
        override fun show(info: String?) {
            println(info)
        }

    })
    //第三种
    val callbac = JavaCallback {
        println(it)
    }
    JavaManager().setCallback(callbac)
    //第四种
    var callback2 = object : JavaCallback{
        override fun show(info: String?) {
            println(info)
        }
    }
    JavaManager().setCallback(callback2)
}

// 行参 java
fun showClass(clazz: Class<JavaStudent>){

}
// 全部是 kt
fun showClass2(clazz: KClass<KtStudent>){

}

kotlin 调用kotlin interface

  1. 创建Kotlin, KtCallback,KtManager
interface KtCallback {
    fun show(name: String)
}
class KtManager {
    fun setCallback(callback: KtCallback){
        callback.show("xiao xiao")
    }
}
  1. 调用
fun main(){

    //解决冲突
    println(JavaStudent.`in`)
    // 调用Java函数 String! 由于是! 最好 var str: String? =
    // JavaString().string.length 错误示范

    var str : String? = JavaStudent().string
    println(str?.length)

    // Class  Java Kt
    showClass(JavaStudent::class.java)

    showClass2(KtStudent::class)

    //kt 使用 java cb
    //第一种
    JavaManager().setCallback(JavaCallback {
        println(it)
    })
    //第二种
    JavaManager().setCallback { info -> println(info) }
    JavaManager().setCallback(object : JavaCallback{
        override fun show(info: String?) {
            println(info)
        }

    })
    //第三种
    val callbac = JavaCallback {
        println(it)
    }
    JavaManager().setCallback(callbac)
    //第四种
    var callback2 = object : JavaCallback{
        override fun show(info: String?) {
            println(info)
        }
    }
    JavaManager().setCallback(callback2)

    // 第一种
    KtManager().setCallback(object : KtCallback{
        override fun show(name: String) {
            println(name)
        }
    })
    //第二种
    val ktCallback = object : KtCallback{
        override fun show(name: String) {
            println(name)
        }

    }
    KtManager().setCallback(ktCallback)
    //kt 不能像Java 这样的写法
    //KtManager().setCallback(KtCallback{})

}

// 行参 java
fun showClass(clazz: Class<JavaStudent>){

}
// 全部是 kt
fun showClass2(clazz: KClass<KtStudent>){

}

相关文章

网友评论

      本文标题:2021-11-16(Kotlin学习笔记)Kotlin Jav

      本文链接:https://www.haomeiwen.com/subject/jyyhtrtx.html