簡體   English   中英

是否有類似bytes(byte…b):byte []的內容?

[英]Is there something like bytes(byte…b):byte[]?

我正在尋找一種簡單的方法,我可以傳入一些字節作為varargs,並返回byte [],例如:

static byte[] byteArray(byte ...bytes){ return bytes;}

我到目前為止發現的...

java.lang.Byte沒有它
java.util.Arrays沒有它
com.google.common.primitives.Bytes.toArray(..)想要一個集合

示例用例: assertThat(actualArray,is(byteArray(1,2,3,4,5)));

沒有功能,因為

new byte[]{1,2,3,4,5}

也很短。

編輯:請注意,任何這樣的幫助方法

static byte[] toBytes(byte ... bytes)
{
   return bytes;
}

new byte{...}有相同的問題:所有參數都必須是字節,並且不能傳播到int 因此,在兩種情況下,都必須將像0xca這樣的參數0xca轉換為byte

byte ba1[] = new byte[]{ (byte)0xca };
byte ba2[] = toBytes( (byte)0xca );

如果想要更簡單的輸入,則必須編寫一個自定義方法,該方法分配一個字節數組,並手動進行應對和轉換。

如果您將字節分配給byte[]類型的變量或字段,則可以比new byte[]{1, 2, 3, 4}更加緊湊地編寫:

byte[] bytes = {1, 2, 3, 4};

此外,這個問題0xca, 0xfe, 0xba, 0xbe是,所有這些值實際上是為Java法律范圍之外的byte ,因為byte在Java中,默認情況下簽署的

也許您想要一個方法,該方法使用long...類型的參數並返回byte[] ,並使用UnsignedBytes.checkedCastUnsignedBytes.saturatedCast轉換每個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM