Java:从字符串中获取变量名称

时间:2013-10-30 17:30:41

标签: java string variables

我有一些像这样定义的变量。

public final static String pDrive = "\\\\fs-innova1\\projects\\";
public final static String hDrive = "\\\\fs-innova1\\hr-department\\";
public final static String iDrive = "\\\\fs-innova1\\innova\\";

然后在我的程序中我有一个字符串,上面写着“p:\ blah \ blah \ blah”我想查看该字符串中的第一个字符并调用变量,如Char(0)+“Drive

2 个答案:

答案 0 :(得分:3)

您应该使用Map<String, String>代替:

private static final Map<String, String> DRIVE_MAPPINGS = new HashMap<>();

static {
    DRIVE_MAPPINGS.put("p", "\\\\fs-innova1\\projects\\");
    DRIVE_MAPPINGS.put("h", "\\\\fs-innova1\\hr-department\\");
    DRIVE_MAPPINGS.put("i", "\\\\fs-innova1\\innova\\");
}

然后使用

String mapping = DRIVE_MAPPINGS.get(input.substring(0, 1));

(或者,如果你真的只想让关键字成为一个字符,请使用Map<Character, String> - 这是同样的想法。)

我会亲自使用Guava创建一个不可变的地图,但原理是相同的 - 这只会让你明白在构建之后你不会改变地图的内容。

答案 1 :(得分:0)

在运行时命名变量是不可能的。你最好的选择是使用地图。