谁能解释一下Arrays.copyOfRange(byte [],int,int))奇怪行为背后的逻辑?我可以用简单的例子来说明我的意思:
byte[] bytes = new byte[] {1, 1, 1};
Arrays.copyOfRange(bytes, 3, 4); // Returns single element (0) array
Arrays.copyOfRange(bytes, 4, 5); // Throws ArrayIndexOutOfBoundsException
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都会复制数组边界之外的范围(即start >= array.length),因此错误的条件对我来说至少是奇怪的(如果from < 0或from > original.length).在我看来应该是:如果from < 0或from >= original.length.也许我错过了什么?