Как решен Exception in thread “main” java.lang. NullPointerException?

Добрый вечер, я делаю задание, которое стремится к тому, чтобы функционировать как меню игры Tamagotchi, но захотев перейти к 2 case или вновь делать операцию, консоль посылает меня java.lang.NullPointerException что не, кого быть передает. Я оставляю два изображения кода, который я приношу до сих пор.

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

1
задан 06.06.2016, 17:23
3 ответа

Если линия 79 этот: } while (letra.equals("N") || letra.equals("n"));

Конечно letra прибудь null.

Конечно, в pantallazo ты поместил letra но в коде, что ты прикрепил нас, он помещает tecla, посмотрим ты будешь запутывать имя переменных и использовать ссылку, которая null.

1
ответ дан 24.11.2019, 14:13
  • 1
    Действительно, у меня есть две буквы типа String, от которых я лишил один из них null, и одинокий другой я дал ему стоимость " null"; сейчас меня заканчивает правильно в case 1. Проблема продолжает в (жените 2) что посылает мне ту же ошибку в линиях, где он начинается (я женил 2) и м и # 233; все, кто содержит. – angel_elias 06.06.2016, 12:16

Ты получаешь null, потому что в 'menГє' внутри do-while никогда ты не просишь букву. CГіmo optimizaciГіn, я советую тебе использовать String#equalsIgnoreCase (String) вместо того, чтобы подтверждать 2 раза с equals, ответ ли это в minГєsculas или mayГєsculas.

Изменил do-while и просить данные из-за клавиатуры.

final Scanner in = new Scanner(System.in);
String letra = "N";
do {
    // Creas objeto Pokémon
    // Le estableces valores
    // Muestras datos
    // Preguntas si quiere continuar (S/s o N/n)
    letra = teclado.nextLine();
} while (letra.equalsIgnoreCase('S'));
0
ответ дан 24.11.2019, 14:13

Ошибка

java.lang. NullPointerException

имеет в виду тот, что существует одна изменчивый объект с недействительной стоимостью, которую ты стараешься использовать.

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

Сообщение линии 79 состоит в том, чтобы переменная linea не инициализировалась, и недействительная и ты стараешься выполнять mГ©todo equals() на этой.

while (letra.equals("N") || letra.equals("n"));

советовал тебе tambiГ©n использовать mГ©todo equalsIgnoreCase () , чтобы упрощать твое решение, таким образом, ты не должен санкционировать букву mayГєscula и minГєscula:

   while (letra.equalsIgnoreCase('n'));
0
ответ дан 24.11.2019, 14:13
  • 1
    Спасибо за ответ, но мне кажется, что договоренность, которую меня определяет как [5], - способность, которой он обладает. Попробуйте меняться c и # 243; я говорю seg и # 250; n ты говоришь мне и он посылает мне тот же тип ошибки. На ней l и # 237; nea 79 перепара и # 233; спасибо. – angel_elias 06.06.2016, 12:26
  • 2
    тогда ошибка изменила 79 линию и дело в том, что ты называл м и # 233; каждый equals () недействительной стоимости " linea". – Jorgesys♦ 06.06.2016, 12:31
  • 3
    Если, он это называл с недействительной стоимостью, это quit и # 233; и он прошел меня хорошо. Другой equals () men и # 250; если я был должен инициализировать это как " null". Я функция и # 243; tambi и # 233; n. – angel_elias 06.06.2016, 12:54
  • 4
    Регулярно требуют, чтобы инициализировать, но в разгрузке тебя c и # 243; я говорю, что ему распределяется стоимость. – Jorgesys♦ 06.06.2016, 19:27