动态变量名称Java

动态变量名称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


凤凰求蛊
浏览 517回答 3
3回答

胡子哥哥

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

红糖糍粑

您可以使用a&nbsp;Map<String, String>并通过其键定位值。更好的是,你可以拥有enum:public&nbsp;enum&nbsp;Foo&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;S_R("Standard",&nbsp;240), &nbsp;&nbsp;&nbsp;&nbsp;S_W("Standard",&nbsp;180),...; &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;type; &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;duration; &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;constructor&nbsp;and&nbsp;getters}然后打电话&nbsp;Foo.valueOf(name)(你也可以通过反射来做到这一点 -&nbsp;Constants.class.getField(fieldName)然后调用field.get(null)(静态为null)。但这不是一个好方法。)

繁星coding

如果你真的必须这样做(并且不太可能),你将不得不使用Java“反射”API。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java