kt文件和java文件_Java与Kotlin之间怎样进行互操作

Java与Kotlin之间怎样进行互操作

发布时间:2021-02-02 10:50:43

来源:亿速云

阅读:98

作者:小新

这篇文章主要介绍了Java与Kotlin之间怎样进行互操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

前言

目前kotlin是谷歌首推的开发Android的语言,但由于历史原因,我们绝大部分项目依旧还是以Java为主的,也就是说存在Java和Kotlin两种语言同时开发的情况。

有人会说把老项目全部翻译成Kotlin,的确可以怎么做,但是成本还是挺大的。我们只能一点一点慢慢的向kotlin语言迁移。

那么在迁移的过程中就避免不了Java和Kotlin相互调用的情况。即Kotlin调用Java或者Java调用Kotlin。下面我们就来具体看下两者之间相互操作的一些解决方案。

kotlin调用java

可空性(Nullability)

Java默认有数值可空性而kotlin没有,所以在调用Java的方法的时候不知道会不会收到空值。

所以我们在Kotlin中调用Java的时候需要添加 ?或者 !来告诉Kotlin有可能出现空值。

比如这里有一个Java方法,接受一组字符串后返回一组做字符串:public Set toSet(Collection elements){

//TODO

}

那么Kotlin在调用的时候是不能确定输入和输出是否可为空的。就需要使用?或者 !来辅助判断。

为了方便Kotlin调用,我们通常使用 @NotNull 注解来标识Java代码的非原始参数、字段、返回值。@NotNull

Set toSet(@NotNull Collection elements){

//TODO

}

这个Kotlin在调用的时候就明确知道不能为空,这里我们使用的是jetBrain的 @NotNull注解,当然还有其他选择,如下图:

你可能感兴趣的:(kt文件和java文件)