#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... }
Комментариев нет:
Отправить комментарий