Эквивалент Java 'public static final string' - PullRequest
0 голосов
/ 10 июня 2018

В моем Java-проекте у меня есть класс, в котором я объявляю много констант проекта, используя public static final final String атрибуты:

public class Constants {
    public static final String KIND_NAME = "user";
    public static final String AVATAR_IMAGE_ID = "avatarImageId";
    public static final String AVATAR_IMAGE_URL = "avatarImageUrl";
    public static final String NAME_COLUMN = "name";
    public static final String TOTAL_SCORE_COLUMN = "totalScore";
    ...
}

Так что я могу использовать это в разных местах моегоproject:

...
String userName = user.getProperty(Constants.KIND_NAME);
...

До сих пор я нашел несколько разных способов реализовать это в Kotlin, например: сопутствующие объекты или класс данных .Какой лучший эквивалентный код в Kotlin?

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

@ От ответа Тодда будет получен INSTANCE экземпляр класса Constants, что иногда бывает неожиданным.Лучшая альтернатива:

// file-level
@file:JvmName("Constants")
const val KIND_NAME = "user"
const val AVATAR_IMAGE_ID = "avatarImageId"
const val AVATAR_IMAGE_URL = "avatarImageUrl"
const val NAME_COLUMN = "name"
const val TOTAL_SCORE_COLUMN = "totalScore"
0 голосов
/ 10 июня 2018

Вы хотели бы использовать простые class с compaion object и некоторыми const val s:

class Constants {
    companion object {
        const val KIND_NAME = "user"
        const val AVATAR_IMAGE_ID = "avatarImageId"
        const val AVATAR_IMAGE_URL = "avatarImageUrl"
        const val NAME_COLUMN = "name"
        const val TOTAL_SCORE_COLUMN = "totalScore"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...