-2

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

在此处输入图像描述

我该如何解决这个问题,据说创建扩展函数 File?.plus,在 java 中它工作正常,但在Kotlin中如何编写这段代码?

4

3 回答 3

6

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

val sdcard = File(Environment.getExternalStorageDirectory(), "/PicTaker/Images")
于 2017-08-22T11:50:44.077 回答
5

你有三个选择:

1)通过调用连接两个字符串的结果来避免将 aFile与 a连接。StringtoString()

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")
于 2017-08-22T11:40:14.683 回答
3

添加toString()

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

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

于 2017-08-22T11:39:37.407 回答