Kotlin:创建扩展函数文件?加
Kotlin : Create extension function file?plus
我正在 Kotlin 中开发一些库,我没有找到这个解决方案,
如何解决这个问题,说的是创建扩展函数文件?.plus,
在 java 中工作正常,但在 Kotlin 中如何编写此代码?
添加toString()
:
val sdcard = File(Environment.getExternalStorageDirectory().toString() + "...")
在 Kotlin 中,我们可以对 + 进行运算符重载,Kotlin 编译器认为您正在尝试对 File?
类型使用重载的加号运算符。并提供了创建扩展函数的选项 File?
你有三个选择:
1) 避免通过调用 toString()
将 File
与 String
连接起来,从而导致连接两个字符串。
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/Images")
您无需编写更多代码,只需将加号 (+) 更改为逗号 (,)。
val sdcard = File(Environment.getExternalStorageDirectory(), "/PicTaker/Images")
我正在 Kotlin 中开发一些库,我没有找到这个解决方案,
如何解决这个问题,说的是创建扩展函数文件?.plus, 在 java 中工作正常,但在 Kotlin 中如何编写此代码?
添加toString()
:
val sdcard = File(Environment.getExternalStorageDirectory().toString() + "...")
在 Kotlin 中,我们可以对 + 进行运算符重载,Kotlin 编译器认为您正在尝试对 File?
类型使用重载的加号运算符。并提供了创建扩展函数的选项 File?
你有三个选择:
1) 避免通过调用 toString()
将 File
与 String
连接起来,从而导致连接两个字符串。
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/Images")
您无需编写更多代码,只需将加号 (+) 更改为逗号 (,)。
val sdcard = File(Environment.getExternalStorageDirectory(), "/PicTaker/Images")