2013-08-28 104 views
-3

有沒有比這更好的方式從byte得到byte[1]如何從一個字節創建一個字節[1]?

byte given_byte = 0x12; 
byte[] wanted_byte = new byte[1]; 
wanted_byte[0] = given_byte; 

我有given_byte。似乎沒有必要使用兩條線來定義wanted_byte

+6

請注意,你在做什麼不是鑄造。 –

+0

您正在創建一個新的(短)'byte'數組並將'byte'的值複製到其中。他們現在是單獨的項目。 – chrylis

+0

@Andreas你正在創建一個元素的數組。 Casting告訴編譯器它知道的一個對象現在應該被表示爲另一種類型。例如:final final Object o =「Hi」; final String s =(String)o;第二行有一個從Object到String的轉換。 –

回答

7

試試這個:

byte[] wanted_byte = new byte[]{given_byte}; 

或者爲霍爾格說:

byte[] wanted_byte = {given_byte}; 
+0

Snap !,除非你錯過了最後的分號。 :) –

+0

@TonyHopkinson,是的,我現在修好了。謝謝:) –

+1

或簡單地'byte [] wanted_byte = {given_byte};' – Holger

1
byte[] wanted_byte = new byte[] {given_byte}; 
+0

-1因爲你看到另一個海報回答同樣的事情減去分號,而不是修復你張貼自己的。 – mah

+0

@mah:他注意到_after_寫下自己的答案。 – Andreas

+0

@mah,你有一個糟糕的一天? Sheesh –

0

或者這樣:

public byte[] cerateByteArray(byte... arr){ 
    return arr; 
} 
public void sample(){ 
    byte b1 = 0; 
    byte b2 = 1; 
    byte[] wanted_byte = createByteArray(b1,b2); 
} 

還是短方式:

byte[] b = {0x01, 0x02}; 
+2

由於問題是關於如何減少代碼行......這個解決方案如何解決它? – mah