2013-08-28 71 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