/ / Защо се появява ArrayIndexOutOfBoundsException и как да го избегнем в Android? [затворен] - java, android, indexoutofboundsexception

Защо се случва ArrayIndexOutOfBoundsException и как да го избегнете в Android? [затворен] - java, android, indexoutofboundsexception

Защо ArrayIndexOutOfBoundsException и как да го избегнем в Android?

Отговори:

5 за отговор № 1

Това изключение се хвърля, когато се опитате да получите достъп до елемент от масив, който не съществува:

String [] myArray = new String[2];

myArray[2] = "something"; // Throws exception
myArray[-1] = "something"; // Throws exception

Преди да осъществите достъп до елемент от масив, проверете дали индексът ви не е отрицателен и не по-висок от дължината на масива.


3 за отговор № 2

Защо се появява ArrayIndexOutOfBoundsException [...]

Тук е цитат от Спецификация на езика на Java: 10.4 Достъп до масив:

Всички достъп до масиви се проверяват по време на изпълнение; опитът да се използва индекс, който е по-малък от нула или по-голям или равен на дължината на масива, води до изхвърляне на ArrayIndexOutOfBoundsException.

[...] и как да го избегнем в Android?

Уверете се, че индексите са в диапазона [0 ...yourArray.length-1].

(Обърнете внимание на -1 по-горе. Масивите са 0-индексирани, което означава, че ще намерите първия елемент в индекс 0, а последният - при 1


1 за отговор № 3

Това означава, както вече казахте, че имате достъп до елемент от масив, който не съществува.

По-голямата част от времето е, защото някой пита за размера на масив (дължина) и след това се опитва да прочете последния елемент като array[length], Но масивите започват от 0, така че последното, което можете да прочетете, е array[length-1]

Разтворът е разбира се няма достъп до елементи, които не съществуват


0 за отговор № 4

Това изключение няма нищо общо с Android, защото приложенията за Android използват езика за програмиране на Java. По-скоро трябва да попитате how to avoid it in Java?.

И най-долният ред е, че се опитвате да получите достъп до стойността на невалидния индекс в масива.

Прочетете официалната документация тук:

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/ArrayIndexOutOfBoundsException.html