Как организовать методы расширения Kotlin
Скажем, у меня есть несколько методов расширения для "MyClass".
Мой вопрос в том, что лучше всего организовать или сохранить эти методы?
Должны ли они просто быть помещены в файл Kotlin "MyClassExtensions"?
Я попытался инкапсулировать эти методы в классе, но после импорта класса я не мог понять, как использовать/получать доступ к методам расширения.
Изменить:
Для уточнения я не просил помощи, чтобы вызвать файл, содержащий методы расширения. Я спрашивал о лучших методах/подходах к хранению/организации таких методов. То есть. если они просто помещаются в файлы kotlin или должны быть инкапсулированы в класс. Я исхожу из фона Java, поэтому я использую для хранения материалов в классах.
Ответы
Ответ 1
Насколько я могу судить, вы должны поместить их в файл утилиты, как раньше в базе кода Java.
Но, скажем, вам больше не нужно класть их в класс. Функции верхнего уровня - лучший выбор.
Вы можете обратиться к стандартной библиотеке kotlin или к некоторым проектам с открытым исходным кодом, таким как anko, это были бы хорошие примеры.
В моем случае я помещаю расширения одного класса в файл с таким же именем исходного файла в другом пакете и использую
@JvmMultifileClass
чтобы уменьшить количество сгенерированных файлов классов.
Ответ 2
Как упоминалось в комментарии по моему вопросу, эта часть документов Kotlin объясняет это довольно хорошо.
https://kotlinlang.org/docs/reference/extensions.html#scope-of-extensions