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

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

在这里输入图像描述

我怎么能解决这个问题, 这是说,创建扩展功能File?.plus ,在Java中它的工作正常,但在Kotlin如何写这个代码?

先谢谢你。

你有三个选择:

1)避免你通过调用toString()一个带有StringFile ,从而导致两个字符串的连接。

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

2)写这个扩展函数并返回一个字符串

 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") 

添加toString()

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

在Kotlin中,我们可以为+运算符重载,而Kotlin编译器认为您正在尝试使用File?的重载加运算符File? 类型。 并提供一个选项来创建File?的扩展功能File?