Java在字节数组中非法启动表达式

时间:2015-06-26 03:08:58

标签: java arrays

我正在尝试将字节值分配给字节数组值。现在我遇到的问题是Illegal start of expression

这是我正在运行的代码:

Byte send[];
Byte data1;
Byte data2;
Byte data3;
send = {(byte)0xE1, data1, data2, data3};

我可以知道我在哪里弄错了。我在第5行收到错误。谢谢。

2 个答案:

答案 0 :(得分:1)

您无法创建Byte(或任何其他此类类型)的数组。这是语法错误 您应该使用以下来分配数组:

send = new Byte[]{(byte)0xE1, data1, data2, data3};

或者您可以在声明期间指定相同的方式:

Byte send[] = {(byte)0xE1, data1, data2, data3};

注意:您将收到另一个错误,因为您尚未初始化正在使用的变量。它们必须在使用前初始化

答案 1 :(得分:0)

您的非法表达式启动是由于您尝试添加到阵列的方式。要在java中添加数组,必须附加它:send.add((byte)0xE1)

有关添加到数组How to add new elements to an array?

的详细信息,请参阅此问题

旁注:您的代码不会被奇迹般地修复。您需要初始化变量(data1,data2,data3)。您还需要在开始向其添加内容之前声明数组的长度,或者您可以稍后一次声明该数组,以避免必须立即锁定大小。阅读此问题以查看声明数组How do I declare and initialize an array in Java?

的不同方法