原创: Android 谷歌开发者
Kotlin 超好用,您也许想用 Kotlin 写所有的东西,但那些现有的 Java 语言代码该怎么办呢?或者您需要用到一个利用 Java 语言编写并已经在很多 Kotlin 或者 Java 项目里被采用的库或者项目。
- 可空性
Java 默认又有数值可空性,而Kotlin没有。所以,如果使用Kotlin来调用Java功能。Kotlin不会知道这个功能能不能返回或受到空值,因此需要添加问号或者感叹号来告诉Kotlin有可能出现空值。不过可以通过注解标识。
java实现
@NotNull
Set<@NotNull String> toSet(@NotNull Collection<@NotNull String> elements){...}
kotlin 实现
fun toSet(elements: (Mutable)Collection<String>) : (Mutable)Set<String>{...}
-
Getters/Setters
如果java空参方法是以get开头的,Kotlin就知道是get方法,通过属性访问它。如果是由set开头的单一参数方法,kotlin会知道是set方法,给属性直接赋值。 -
关键字
Java和kotlin的关键字不同,因此在kotlin调用时,就可能出现一些问题。不过Kotlin可以通过增加''可以解决,但是''不是很友好,尽可能进行重命名
例:is是kotlin的关键字,在java中不是,可以作为一个方法名
java代码
public boolean is(SomeObject input ){...}
kotlin 的调用
something.'is'(input)
-
Any
试着避免在任何扩展方法和扩展属性上使用Any。 -
运算符重载
java 不存在运算符重载,但是kotlin存在
a+b a.plus(b)
a-b a.minus(b)
a*b a.times(b)
a/b a.div(b)
a..b a.rangeTo(b)
+a a.unaryPlus()
-a a.unaryMinus()
!a a.not()
a++ a.inc()
a-- a.dec()
网友评论