Перечисление валюты - как? - PullRequest
       32

Перечисление валюты - как?

0 голосов
/ 25 октября 2018

У меня есть это в качестве класса перечисления валюты в моем приложении для Android

enum class Currency constructor(val symbol: String) {
    GBP("£"),
    EUR("€"),
    USD("$");
}

Теперь currency.name() возвращает EUR и currency.getSymbol() возвращает .

Этот классшироко используется в приложении.Изменение этого класса на большой набор значений (скажем, 100 - 150) валют увеличит размер dex + выделение памяти во время выполнения.

Использование StringDef решило бы эту проблему

public class Currency {
    @Retention(SOURCE)
    @StringDef({
            GBP,
            USD,
            EUR
    })
    public @interface CurrencyDef {
    }

    public static final String GBP = "£";
    public static final String EUR = "€";
    public static final String USD = "$";
    }

Но это не позволило бы мне получить символ из кода валюты и наоборот.
Нужны рекомендации / предложения по наилучшему подходу.
Заранее спасибо.

...