#java #android #kotlin
Есть метод в java: public static Locale parseStringLocale(String locale) { return locale.length() > 2 ? new Locale(locale.substring(0, 2), locale.substring(3)) : new Locale(locale); } При попытке сконвертировать его в kotlin получается нечто подобное: fun parseStringLocale(locale: String): Locale { return if (locale.length > 2) Locale(locale.substring(0, 2), locale.substring(3)) else Locale(locale) } Но он уже не static, ему стоит как то приклеить companion object или как можно решить вопрос, для будущего вызова данного метода.
Ответы
Ответ 1
Статические методы в Kotlin задаются через companion object т.е. в вашем случае companion object{ fun parseStringLocale(locale: String): Locale { return if (locale.length > 2) Locale(locale.substring(0, 2), locale.substring(3)) else Locale(locale) } }Ответ 2
Я бы рекомендовал в Kotlin заменять служебные методы (util) на extensions. Модификатор static убрали не для того, чтобы все методы перемещать в компаньон. Я бы сделал так: fun String.toLocale(): Locale { //здесь ваша логика, обращайтесь к данному String с помощью this } Если вы же хотите сделать util класс, можно сделать просто object: object LocaleUtils { //fun parseStringLocale... }
Комментариев нет:
Отправить комментарий