有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

泛型如何在java中将列表<byte[]>转换为byte[]]

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

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

现在。我已经用Stringfields构建了key,类型为List<byte[]>,并通过以下方式将其传递到hMGet方法:

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

但是语法错误也会发生。如何达到我的目的


共 (1) 个答案

  1. # 1 楼答案

    这应该是有效的:

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