为了账号安全,请及时绑定邮箱和手机立即绑定

动态变量名称Java

动态变量名称Java

凤凰求蛊 2019-08-14 15:59:40
动态变量名称Java我如何能够检索具有动态名称的变量的值例如,我有常量列表public class Constant{     public static final String S_R = "Standard(240)";     public static final String S_W = "Standard(180)";     public static final String L_R = "Large(360)";     public static final String L_W = "Large(280)";}基于数据库,我构建了一个变量名String varName = "S" + "_"  +"R"; // This can be S_R , S_W , L_R or L_W String varVal = // How do i get value of S_R
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

使用带有变量名称的普通HashMap作为其值的字符串。或者使用EnumMap将枚举作为键,将值作为值。AFAIK,这是使用Java时最接近的。当然,你可以搞砸反射,但IMO的地图方法更合乎逻辑。


查看完整回答
反对 回复 2019-08-14
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您可以使用a Map<String, String>并通过其键定位值。

更好的是,你可以拥有enum

public enum Foo {
    S_R("Standard", 240),
    S_W("Standard", 180),...;

    private String type;
    private String duration;

    // constructor and getters}

然后打电话 Foo.valueOf(name)

(你也可以通过反射来做到这一点 - Constants.class.getField(fieldName)然后调用field.get(null)(静态为null)。但这不是一个好方法。)


查看完整回答
反对 回复 2019-08-14
?
繁星coding

TA贡献1797条经验 获得超4个赞

如果你真的必须这样做(并且不太可能),你将不得不使用Java“反射”API。


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 516 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信