我有一个由String和Object组成的Map;
Map<String, Object> filters
但是当我尝试使用过滤器时,值 中的[ljava.lang.string;@46d8e9e
我想在地图中将对象中的字符串数组分开并制作foreach,但我尝试的所有内容都不起作用。
这是我制作foreach的方法;
if (!filters.isEmpty()) {
filters.forEach((k, v) -> {
columnName = new String(k.toString());
filter = new String(v.toString());
});
} else {
columnName = new String(DEFAULT_SORT_FIELD);
filter = new String("");
}
实际上,我正在使用 Primefaces 中的 selectCheckboxMenu ,而这张奇怪的地图来自那里。当我使用 selectOneMenu 时,值已经变为键。
答案 0 :(得分:1)
如果我已经正确使用你,你需要转换保存在Object中的String [],该示例将返回 [a,b,c]
public static void main(String[] args) {
HashMap<String, Object> map = new HashMap<>();
map.put("key1", new String[]{"a","b","c"});
map.forEach((k,v) -> System.out.println(toList(v)));
}
public static List<String> toList(Object obj) {
return Arrays.asList((String[])obj);
}