变量声明相关
// var声明变量
var age = 18
//val声明一个不可变的变量,注意它和常量不是同一个概念。
val name:String = "wangjing"
//在数据类型后面加个一个?代表可以赋值null
var str1:String? = null
var str2:String = "str"
// !!表示强转,当你想让一个可为null的类型赋值给一个不可为null的类型时使用
str2 = str1!!
//声明一个返回一个str的方法, :String声明返回的类型,如果没有返回类型不就用加就像java中void一样。
fun method(str:String):String{
println("输出这个str:$str")
return str
}
Java与kotlin语法交互
Java与kotlin.kt文件方法之间的调用
//Utils.kt 中定义一个echo方法
fun echo(name:String){
println(name)
}
//java中调用该方法 使用文件名+Kt 直接调用
public static void main(String[] args){
UtilsKt.echo("form java");
}
Java 与kotlin Object 间的调用
//kotlin object
object Demo {
fun sendMessage(msg:String){
println(msg)
}
}
//kotlin 调用
Demo.sendMessage("123")
//java调用
Demo.INSTANCE.sendMessage("java");
获取Class的实例
//java获取java类的Class
TestClass.class
//kotlin获取java类的Class,kotlin获取时使用的是双::
TestClass::class.java
//kotlin获取kotlin类的Class,kotlin使用的是自己的KClass,kotlin获取时使用的是双::
KotlinClass::class
Java和kotlin关键字冲突处理方法
//java类中定义一个属性(例如in)和kotlin关键字冲突时,
//kotlin要调用java的关键字需要使用用``转义
Main.`in`
kotlin中的基本数据类型,没有对应的封装类(就像java中int对应Integer)
kotlin调用java中数据的时,如果不能确定是否为null,一定要将kotlin的变量定义为可为null的(即加上?),
kotlin中没有静态变量和静态方法,可以使用@JvmStatic注解在指定的kotlin方法上,这样就可以在java调用静态方法的方式一样调用该方法。
object Test {
@JvmStatic
fun method(str:String):String{
println("输出这个str:$str")
return str
}
}
//java中调用该方法
Test.method("123");