我是Android开发人员,并且有一段代码。
ArrayList<Byte> list = new ArrayList<>();
byte a = (byte) 0xff;
list.add(a);
这段代码在单元测试和大多数手机中都没问题。但是我发现一些手机数据收集中有一些崩溃事件日志。
java.lang.ArrayIndexOutOfBoundsException: length=256; index=383
at java.lang.Byte.valueOf(Byte.java:300)
我可以在第300行附近的Byte.java找到这段代码
public static Byte valueOf(byte b) {
return VALUES[b + 128];
}
我不知道为什么。参数字节b> 128?以及如何修复它们?