Java方法中byte []和byte ...之间的区别

JPM*_*JPM 4 java methods bytearray

有人问我两个方法参数之间有什么区别,以及为什么要使用...特别指定的数组.

putMessage(byte ...send)

putMessage(byte[] send)
Run Code Online (Sandbox Code Playgroud)

我无法自信地回答他们,也不记得......被称为是什么.

Asa*_*aph 6

...你的第一个例子被称为可变参数.你的第二个例子有一个数组参数.当你想要为方法硬编码可变数量的参数但又不想手动创建一个数组来保存它们时,Varargs是一种方便.这是一种速记符号.考虑一下:

putMessage(0b00100101, 0b00100101, 0b00100101); // varargs
Run Code Online (Sandbox Code Playgroud)

与此:

putMessage(new byte[] { 0b00100101, 0b00100101, 0b00100101 }); // array
Run Code Online (Sandbox Code Playgroud)

第一个例子不那么混乱,更具可读性.