运行时的Java数组初始化

Vol*_*il3 0 java

我正在研究基于Java的COM程序,当我以这种格式发送数据时它可以工作:

serialPort.writeBytes( new byte[] { (byte)3, (byte)0, (byte)0, 
                                    (byte)0, (byte)4, (byte)5} );
Run Code Online (Sandbox Code Playgroud)

但是当我这样做的时候却没有,我在哪里做错了?

byte[] bcode = null;
bcode[0] = (byte)3;
bcode[1] = (byte)0;
bcode[2] = (byte)0;
bcode[3] = (byte)0;
bcode[4] = (byte)4;
bcode[5] = (byte)5;
serialPort.writeBytes(bcode);
Run Code Online (Sandbox Code Playgroud)

rge*_*man 6

在第二个示例中,您没有创建数组,而是分配了它null.您不能引用不存在的数组的数组元素.你可以做到

byte[] bcode = new byte[6];
Run Code Online (Sandbox Code Playgroud)

这将创建具有6个字节空间的数组.然后单独分配您的值.