java.lang.NullPointerException:
Solution.java, method main, line: 15
Осуществлена попытка доступа к не инициализированному объекту (Null).
кто что думает?
Илья
10 уровень
Задачу решил, НО -
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
solwo Full Stack Developer в Корус
12 августа 2018, 00:48
В 15 строке есть переменная, которой еще не присвоено никакого значения.
Чтобы сказать точнее, нужно увидеть всю программу.
0
Илья
12 августа 2018, 13:19
/*
Настя или Настя?
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
String name1 = reader.readLine();
int x = name1.length(); // ЭТО 15 СТРОКА ! ! ! ! ! ! ! ! !
int y = name.length();
if (name.equals(name1)){
System.out.println("Имена идентичны");
}
else {
if (x ==y){
System.out.println("Длины имен равны");
}
}
}
}
+1
solwo Full Stack Developer в Корус
12 августа 2018, 14:13
Интересно, далеко не сразу получилось воспроизвести проблему.
Это проверка на сайте такую ошибку выдаёт? Если так, то это глюк с проверкой.
Тогда можно что-нибудь поменять в программе (добавить пустых строк, удалить комментарии), чтобы проверка подумала, что это новый вариант программы и заново запустила все тесты.
Проверил. Если программу скомпилировать и запустить на компьютере, то всё работает:
javac Solution.java - компилируем, получается файл Solution.class
java Solution - запускаем.
Единственное, как удалось воспроизвести проблему: при вводе имени нажимаю Ctrl-Z. Это означает конец ввода, и в переменную name или name1 действительно записывается Null.
Сильно сомневаюсь, что проверка на сайте делает такую "подлянку". Но от неё можно защититься примерно так:
...
String name = reader.readLine();
String name1 = reader.readLine();
// Если ничего не прочитали (присвоился Null), то принудительно считаем, что это пустая строка.
if (name == null) name = "";
if (name1 == null) name1 = "";
....
0
--------Master
12 августа 2018, 14:58
Данные с клавиатуры при запуске на сайте вводятся в поле "входные данные (system.in)" с новой строки. Нет введенных данных - переменных name и name1 присваивается null (нет объекта), у этого null программа пытается вызывать метод length
0
Илья
12 августа 2018, 19:54
сложновато вы обьясняете. Факт в том что код верный. И проверку сразу прошел
0
--------Master
12 августа 2018, 20:27
Попытался на скринщоте изобразить последовательность, как еще проще - не представляю. Разве что осталось видео записать с подробными объяснениями каждого движения мыши и нажатия клавиши...
0
Артем Divertitto Senior Android-разработчи в United Tech Master
13 августа 2018, 09:53
Скорее всего, ты просто не ввел входящие данные, если ты решаешь через вебИдею
0