如何将 List<byte[]> 转换为 java 中的 byte[][]

how to convert List<byte[]> into byte[][] in java

我想使用一种支持可变参数的 Jedis 客户端方法:

hMGet(byte[] key, byte[]... fields)

现在。我用 String 构建了 keyfields 类型是 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()][]