Я хочу вызвать функцию расширения из класса 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 }
Расширения членов видны только внутри класса, в котором они объявлены. Однако вы можете разместить свою функцию расширения вне класса, чтобы иметь возможность импортировать и использовать ее где-либо еще.
Вы не можете вызывать это вне класса, потому что он вложен в этот класс и, следовательно, применяется только к этой области.
Сделать свойство расширения на верхнем уровне (переместить его за пределы класса).