Intereting Posts
Неожиданные жетоны (используйте, чтобы разделить выражения в одной строке) в котлин Добавление / Query / Parse SQLite с использованием Anko Соответствие регулярных выражений в Котлине Почему Bundle in Intent теряется? Kotlin: 'val' по второму параметру конструктора не допускается Как правильно реализовать интерфейс в фрагменте андроида? Попытка исключить поле при сохранении класса данных kotlin в качестве документа в Google Cloud Firestore Возможно ли получить доступ к типам Kotlin из Java? Kotlin: преобразовать большой список в подсписку заданного размера раздела kotlin отборочный аннотации игнорируется В чем причина twitter4j.StreamListner IllegalAccessError в Котлине? «Ошибка: не удалось найти или загрузить основной« ИЛИ »класс не найден» – с помощью андроидного модуля (Gradle / IntelliJ) Почему URL ("http://pboss.pozit.pl/contact.html") .readText () делает сбой приложения для Android? Разрыв между SwipeRefreshLayout и RecyclerView Совместное использование функций расширения между Float и Double в Котлине

Kotlin: создать файл функции расширения? Plus

Я разрабатываю некоторый lib в Kotlin , я не нахожу это решение,

введите описание изображения здесь

Как я могу решить эту проблему ? Говорит , что создайте функцию расширения File? .plus , в java ее работа отлично, но в Kotlin, как написать этот код?

Заранее спасибо.

У вас есть три варианта:

1) Избегайте того, что вы объединяете File со String , вызывая toString() что приводит к объединению двух строк.

 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, думая, что вы пытаетесь использовать перегруженный оператор plus для File? тип. И дает возможность создать функцию расширения для File?