我有一些像这样定义的变量。
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
答案 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)
在运行时命名变量是不可能的。你最好的选择是使用地图。