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

时间:2018-04-19 08:40:00

标签: java generics variadic-functions jedis

我想使用支持varargs的Jedis客户端方法:

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

现在。我构建了key Stringfields,其类型为List<byte[]>,并以这种方式将其传递给hMGet方法:

hMGet(key.getBytes(), fields.toArray(new byte[][fields.size()]))

但是语法错误发生了。如何实现我的目的?

1 个答案:

答案 0 :(得分:0)

这应该有效:

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()] []