我将此作为我的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 = "$";
}
但是,这不允许我从货币代码中提取符号,反之亦然。
需要有关最佳方法的指导/建议。
预先感谢。