kotlin和java虽然100%互通,但是其实还是要注意一些问题,这里总结一下。
Java调用Kotlin
顶层函数和属性
kotlin有顶层方法和属性,java没有,首先Test.kt文件中中定义的顶层方法以及属性
package kotlin
/*
* Created by TY on 2017/7/20.
*/
var name:String="";
const val name1="2";
fun test(){
}
fun main(args: Array<String>) {
}
在java中会自动生成一个TestKt类,直接调用即可。
package java;
import kotlin.TestKt;
/*
* Created by TY on 2017/7/28.
*/
class Main {
public static void main(String args[]) {
TestKt.test();
TestKt.setName("1");
String a =Hello.name1;
}
}
这里的const关键字的用法相当于public static final ,注意const的限制:
1.只要出现在最顶层或对象内部
2.只支持String与原始类型
3.无法算自定义getter
如果想指定生成的类名,要用到注解 @file:JvmName()
,放在package之前