V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
abcbuzhiming
V2EX  ›  Java

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

  •  2
     
  •   abcbuzhiming · Apr 2, 2021 · 2407 views
    This topic created in 1861 days ago, the information mentioned may be changed or developed.
    遇到一个极其头疼的问题
    Spring redis 里有一个对 bit 做异或的方法叫

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

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

    然而 Java 的泛型有局限性,没有泛型数组这玩意,因此诸如你想搞出一个元素都是 byte[]的数组是搞不出来的,我该怎么才能把几千个 key 丢过去异或呢?
    2 replies    2021-04-02 16:57:16 +08:00
    agzou
        1
    agzou  
       Apr 2, 2021
    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  
       Apr 2, 2021
    byte[]... 等同于 byte[][]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5607 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 09:10 · PVG 17:10 · LAX 02:10 · JFK 05:10
    ♥ Do have faith in what you're doing.