货币枚举-如何?

时间:2018-10-25 12:35:01

标签: android enums typedef

我将此作为我的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 = "$";
    }

但是,这不允许我从货币代码中提取符号,反之亦然。
需要有关最佳方法的指导/建议。
预先感谢。

0 个答案:

没有答案