如何获取Map中的字节值

时间:2014-06-09 04:51:22

标签: java

我想在Map对象中获取一个字节的值。

Map<String, Object> data = new HashMap<>();
data.put("foo", new byte[]{4});

System.out.println(data.get("foo"));

我得到的是这样的...... [B @ 1a779dce

请帮帮我。

2 个答案:

答案 0 :(得分:1)

正如@JigarJoshi在他的评论中所提到的,这就是toString()类的byte[]实现的样子。当您在System.out.printlnbyte[]时,会调用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]