Kotlin如何调用扩展功能

时间:2018-07-01 17:24:23

标签: android kotlin

我想从另一个类的MainActivity类中调用扩展函数。 我该怎么办?

object MainActivity : AppCompatActivity() {

val StringBuilder.readHistory: StringBuilder
    get() {
        val temp = this@readHistory
        temp.setLength(0)
        try {
            val file = InputStreamReader(MainActivity.openFileInput(MainActivity.getString(R.string.dosyaadı)))
            val br = BufferedReader(file)
            var line = br.readLine()
            while (line != null) {
                temp.append(line + "\n")
                line = br.readLine()
            }
            br.close()
            file.close()
} catch (e: Exception) {
            e.printStackTrace()
        }
        return temp
    }

2 个答案:

答案 0 :(得分:0)

您不能在类外部调用此函数,因为它嵌套在此类内部,因此仅适用于该范围。

将扩展属性设为顶级(将其移至类之外)。

答案 1 :(得分:0)

Member extensions仅在声明它们的类中可见。但是,您可以将扩展函数放在类之外,以便能够在其他任何地方导入和使用它。