Отсутствующие перестановки во время рекурсии

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

1
задан colminator 5 April 2019 в 16:51
поделиться

1 ответ

Вам необходимо отменить запись в главный байт-фрагмент во время рекурсивного отслеживания:

if mstr[index] == q {
        mstr[index] = a
        allstr(mstr, index+1, size, q, a, b)

        mstr[index] = b
        allstr(mstr, index+1, size, q, a, b)

        mstr[index] = q         // <--- add this
} 

https://play.golang.org/p/-JEsVGFcsQo [ 113]

0
ответ дан colminator 5 April 2019 в 16:51
поделиться
Другие вопросы по тегам:

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