java 调用Kotlin
- 创建kotlin 文件 MyUtils.kt
class MyUtils{
fun show(info: String){
println(info)
}
}
// MyUtils.kt
fun show(info: String){
println(info)
}
- 创建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
- 创建JavaStudent类
public class JavaStudent {
public static String in = "INNNNNNN";
public String getString(){
return "xiao biao";
}
}
- 创建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 怎么传
- 行参 Java
fun showClass(clazz: Class<JavaStudent>){}
showClass(JavaStudent::class.java)
- 全部是 Kt
fun showClass2(clazz: KClass<KtStudent>){}
showClass2(KtStudent::class)
kotlin 调用java interface
- 创建java类,JavaCallback,JavaManager
public interface JavaCallback {
void show(String info);
}
public class JavaManager {
public void setCallback(JavaCallback javaCallback){
javaCallback.show("Xiao bai");
}
}
- 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
- 创建Kotlin, KtCallback,KtManager
interface KtCallback {
fun show(name: String)
}
class KtManager {
fun setCallback(callback: KtCallback){
callback.show("xiao xiao")
}
}
- 调用
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>){
}
网友评论