这就是我的情况:
我有一个获取字符串和一堆其他信息的方法。 根据字符串的内容,我想将其他信息放入我拥有的两个 map 之一中。像这样:
if (string.equals("A")) {
A.put[..]
} else if (string.equals("B")) {
B.put[..]
}
但是因为这种情况在我的方法中发生了几次,所以我不想每次都使用 if/else 因为冗余。
所以我想我需要的是某种对象/指针/引用,我可以在开始时分配我想要使用的 map 一次,然后将其用作占位符。
最佳答案
这就是我们有引用变量的原因:
Map<?,?> map;
if(string.equals("A"))
map = A;
else if(string.equals("B"))
map = B;
else
map = new HashMap<>();
工作正常。最后一行更像是对字符串的错误检查,并且在方法完成后将被垃圾收集(否则映射可能不会初始化,这将抛出空指针)。之后,您可以将所有内容放入 map 中(感谢引用变量:-))。请记住, map 只是对您的 map A 或 B(或“无效”)的引用
关于Java:根据变量访问正确的映射,而不使用 "if",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34949036/