如何将 List<byte[]> 转换为 java 中的 byte[][]
how to convert List<byte[]> into byte[][] in java
我想使用一种支持可变参数的 Jedis 客户端方法:
hMGet(byte[] key, byte[]... fields)
现在。我用 String
构建了 key
,fields
类型是 List<byte[]>
并以这种方式将其传递给 hMGet 方法:
hMGet(key.getBytes(), fields.toArray(new byte[][fields.size()]))
但是出现了语法错误。如何达到我的目的?
这应该有效:
list.toArray(new byte[0][0]);
或
list.toArray(new byte[list.size()][]);
无论何时创建数组,都应指明其大小或提供数据:
String[] a = new String[0]; <- size 0
String[] b = new String[]{}; <- empty, size 0
String[] c = new String[]{"a", "b"}; <- size 2
在你的例子中,你在错误的地方指示了大小(不是在包含其他数组的初始数组中)
new byte[][fields.size()]
正确的是:
new byte[fields.size()][]
我想使用一种支持可变参数的 Jedis 客户端方法:
hMGet(byte[] key, byte[]... fields)
现在。我用 String
构建了 key
,fields
类型是 List<byte[]>
并以这种方式将其传递给 hMGet 方法:
hMGet(key.getBytes(), fields.toArray(new byte[][fields.size()]))
但是出现了语法错误。如何达到我的目的?
这应该有效:
list.toArray(new byte[0][0]);
或
list.toArray(new byte[list.size()][]);
无论何时创建数组,都应指明其大小或提供数据:
String[] a = new String[0]; <- size 0
String[] b = new String[]{}; <- empty, size 0
String[] c = new String[]{"a", "b"}; <- size 2
在你的例子中,你在错误的地方指示了大小(不是在包含其他数组的初始数组中)
new byte[][fields.size()]
正确的是:
new byte[fields.size()][]