我想在Map对象中获取一个字节的值。
Map<String, Object> data = new HashMap<>();
data.put("foo", new byte[]{4});
System.out.println(data.get("foo"));
我得到的是这样的...... [B @ 1a779dce
请帮帮我。
答案 0 :(得分:1)
正如@JigarJoshi在他的评论中所提到的,这就是toString()
类的byte[]
实现的样子。当您在System.out.println
上byte[]
时,会调用toString()
方法将其转换为String
,然后再打印。
如果要读取单个字节,则必须循环返回值。
byte[] ba = (byte[]) data.get("foo");
for (byte b: ba) {
System.out.println(b);
}
答案 1 :(得分:0)
当您将Object
添加到地图而不是byte[]
时,您需要投射它。
Map<String, Object> data = new HashMap<>();
data.put("foo", new byte[]{4,3,1,2});
System.out.println(Arrays.toString((byte[])data.get("foo")));
<强>输出强>
[4,3,1,2]