[英]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.checkedCast或UnsignedBytes.saturatedCast轉換每個值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.