V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcbuzhiming
V2EX  ›  Java

请教,怎么才能把一个 list 塞进可变长参数里去

  •  2
     
  •   abcbuzhiming · 2021-04-02 11:23:47 +08:00 · 1725 次点击
    这是一个创建于 1092 天前的主题,其中的信息可能已经有所发展或是发生改变。
    遇到一个极其头疼的问题
    Spring redis 里有一个对 bit 做异或的方法叫

    Long bitOp(RedisStringCommands.BitOperation var1, byte[] var2, byte[]... var3);

    就像你们看到的,这东西后面传入 key 都是 byte[],而不是简单的 String 。因此,List<String> 转 String[]的方法行不通

    然而 Java 的泛型有局限性,没有泛型数组这玩意,因此诸如你想搞出一个元素都是 byte[]的数组是搞不出来的,我该怎么才能把几千个 key 丢过去异或呢?
    2 条回复    2021-04-02 16:57:16 +08:00
    agzou
        1
    agzou  
       2021-04-02 11:43:47 +08:00
    public class DemoApp {
    public static void main(String[] args) {
    List<String> data= new ArrayList<>();
    byte[][] bytes = data.stream().map(String::getBytes).toArray(byte[][]::new);
    test("",null,bytes);
    }
    private static void test(String var1 ,byte[] var2, byte[]... var3) {

    }
    }
    cheng6563
        2
    cheng6563  
       2021-04-02 16:57:16 +08:00
    byte[]... 等同于 byte[][]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2813 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:49 · PVG 22:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.