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