我正在尝试将字节值分配给字节数组值。现在我遇到的问题是Illegal start of expression
。
这是我正在运行的代码:
Byte send[];
Byte data1;
Byte data2;
Byte data3;
send = {(byte)0xE1, data1, data2, data3};
我可以知道我在哪里弄错了。我在第5行收到错误。谢谢。
答案 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?
的不同方法