Как создать всплывающее окно checkbox multiselect в wordpress?

Что вызывает ArrayIndexOutOfBoundsException?

Если вы думаете о переменной как о «поле», где вы можете поместить значение, то массив представляет собой ряд ящиков, расположенных рядом с eachother, где число Ячейки представляют собой конечное и явное целое число.

Создание такого массива:

final int[] myArray = new int[5]

создает строку из 5 полей, каждая из которых имеет int. Каждый из ящиков имеет индекс, позицию в ряду ящиков. Этот индекс начинается с 0 и заканчивается на N-1, где N - размер массива (количество ящиков).

Чтобы получить одно из значений из этой серии ящиков, вы можете обратиться к нему через его индекс, например:

myArray[3]

Который даст вам значение 4-го ящика в серии (так как в первом поле есть индекс 0).

ArrayIndexOutOfBoundsException вызвано попыткой извлечь «ящик», который не существует, передав индекс, который выше индекса последнего «поля» или отрицательный.

В моем примере работы эти фрагменты кода приведут к такому исключению:

myArray[5] //tries to retrieve the 6th "box" when there is only 5
myArray[-1] //just makes no sense
myArray[1337] //waay to high

Как избежать ArrayIndexOutOfBoundsException

Чтобы предотвратить ArrayIndexOutOfBoundsException, необходимо рассмотреть некоторые ключевые моменты:

Looping

При переходе по массиву всегда убедитесь, что индекс, который вы извлекаете, строго меньше длины массива (количество ящиков). Например:

for (int i = 0; i < myArray.length; i++) {

Обратите внимание на <, никогда не смешивайте там =.

Возможно, вам захочется сделать что-то вроде этого:

for (int i = 1; i <= myArray.length; i++) {
    final int someint = myArray[i - 1]

Просто нет. Придерживайтесь одного выше (если вам нужно использовать индекс), и это сэкономит вам много боли.

По возможности используйте foreach:

for (int value : myArray) {

Таким образом, вы вообще не придется вообще обдумывать индексы.

Когда вы выполняете цикл, что бы вы ни делали, НИКОГДА не изменяйте значение итератора цикла (здесь: i). Единственное место, которое должно изменить значение, это сохранить цикл. Изменение в противном случае просто рискует исключением и в большинстве случаев не является обязательным.

Retrieval / update

При извлечении произвольного элемента массива всегда проверяйте его действительность индекс по длине массива:

public Integer getArrayElement(final int index) {
    if (index < 0 || index >= myArray.length) {
        return null; //although I would much prefer an actual exception being thrown when this happens.
    }
    return myArray[index];
}
-1
задан Jatin Jain 13 July 2018 в 14:25
поделиться

1 ответ

Флажок, флажок * и радио

Оба флажка и флажок * представляют группу флажков (в формате HTML). checkbox * требует, чтобы пользователь проверил хотя бы одно из полей.

radio представляет группу переключателей (в формате HTML). Обратите внимание, что нет нужной версии радио («радио *»). Причина, по которой контактная форма 7 не предоставляет «радио *», заключается в том, что переключатель является естественным полем. Документ спецификации HTML объясняет это более подробно.

Пример:

[checkbox your-country "China" "India" "San Marino"]

Источник: https://contactform7.com/checkboxes-radio-buttons-and- меню /

0
ответ дан Wagner 17 August 2018 в 12:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: