Kotlin:创建扩展函数文件?加

Kotlin : Create extension function file?plus

我正在 Kotlin 中开发一些库,我没有找到这个解决方案,

如何解决这个问题,说的是创建扩展函数文件?.plus, 在 java 中工作正常,但在 Kotlin 中如何编写此代码?

添加toString():

val sdcard = File(Environment.getExternalStorageDirectory().toString() + "...")

在 Kotlin 中,我们可以对 + 进行运算符重载,Kotlin 编译器认为您正在尝试对 File? 类型使用重载的加号运算符。并提供了创建扩展函数的选项 File?

你有三个选择:

1) 避免通过调用 toString()FileString 连接起来,从而导致连接两个字符串。

val sdCard = File(Environment.getExternalStorageDirectory().toString() + "/PicTaker/Images")

2) 编写扩展函数和return一个字符串

private operator fun File?.plus(s: String): String {
    return this.toString() + s
}

3) 使用字符串模板

val sdCard = File("${Environment.getExternalStorageDirectory()}/PicTaker/Image‌​s")

您无需编写更多代码,只需将加号 (+) 更改为逗号 (,)。

val sdcard = File(Environment.getExternalStorageDirectory(), "/PicTaker/Images")