java.lang.ArrayIndexOutOfBoundsException:设置数组'时为0;s指数

java.lang.ArrayIndexOutOfBoundsException:设置数组'时为0;s指数,java,Java,我试图将字节数组中的索引设置为1,当我这样做时,第2行出现错误“java.lang.ArrayIndexOutOfBoundsException:0” byte[] b = {}; b[0] = 1; 我做错了什么?您的数组大小为0,因此它不能包含任何值,因为您不能设置任何值。 您必须创建大小大于0的数组 byte[] b = new byte[1] b[0] = 1; 或者 byte[] b = {42}; b[0] = 1; 您的数组大小为0,因此它不能包含任何值,因为您不能设置任何值

我试图将字节数组中的索引设置为1,当我这样做时,第2行出现错误“java.lang.ArrayIndexOutOfBoundsException:0”

byte[] b = {};
b[0] = 1;

我做错了什么?

您的数组大小为0,因此它不能包含任何值,因为您不能设置任何值。 您必须创建大小大于0的数组

byte[] b = new byte[1]
b[0] = 1;
或者

byte[] b = {42};
b[0] = 1;

您的数组大小为0,因此它不能包含任何值,因为您不能设置任何值。 您必须创建大小大于0的数组

byte[] b = new byte[1]
b[0] = 1;
或者

byte[] b = {42};
b[0] = 1;

您已初始化长度为0的数组。”b[0]”引用此元素的第一个元素,该元素不存在(长度为0)


是您要查找的。

您已初始化长度为0的数组。”b[0]”引用此元素的第一个元素,该元素不存在(长度为0)

就是你要找的东西。

当你说
byte[]b={},您正在创建一个根本不包含任何元素的数组。因此,调用它的第一个索引将返回该错误

相反,请执行以下操作:

byte[] b = new byte[10];
b[0] = 1;
声明和设置长度的第一行,以及将第一个元素设置为1的第二行
byte[]b={},您正在创建一个根本不包含任何元素的数组。因此,调用它的第一个索引将返回该错误

相反,请执行以下操作:

byte[] b = new byte[10];
b[0] = 1;

第一行是声明和设置长度,第二行是将第一个元素设置为1。

我认为您没有初始化数组。 你说的是
byte[]b={}我认为等效的
byte[]b=新字节[0]

所以,若你们将任何值放入数组,那个么程序将返回那个错误。

我认为你们并没有初始化数组。 你说的是
byte[]b={}我认为等效的
byte[]b=新字节[0]

所以,若您将任何值放入数组,那个么程序将返回该错误。

您已将arraylength声明为0小心您已将arraylength声明为0小心