Прошу прощения, если это было каким-то образом ответили где-то в другом месте, но я недостаточно разбираюсь в java, чтобы идентифицировать подобную проблему из какой-либо другой ситуации.Java Исключение Null-указателя в вызове конструктора
Это может быть жестким, чтобы получить всю информацию здесь, так что я постараюсь, чтобы получить необходимые в
Я пишу программу календаря, и когда я называю конструктор в демонстрационном классе:.
System.out.println("Enter month (1 - 12)");
month = console.nextInt();
System.out.println("Enter year (> 1500)");
year = console.nextInt();
Calendar myCalendar = new Calendar(month, year);
Я получаю исключение нулевого указателя в строке, где я вызываю конструктор. Я также получить один при первом вызове функции в самом конструкторе:
public Calendar(int m, int y)
{
firstDate.setDate(m, 1, y);
firstDayOfMonth();
}
Второй номер в вызове метода SETDATE является 1, потому что я использую класс даты я уже писал, и в календаре, только месяц и год требуется, поэтому я на следующий день, чтобы быть 1.
После этого мои сообщения об ошибках становятся менее понятными для меня следующим образом:
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Я использую DrJava, чтобы сделать это, если это имеет значение. Если кто-нибудь может помочь мне понять, что происходит, поэтому я могу работать над устранением проблемы, это было бы здорово. Я знаю, что здесь может быть недостаточно информации, чтобы предоставить реальное решение, но если бы я понял, что происходит, я, возможно, смогу понять это с помощью немного дополнительных исследований. Я понимаю, что исключение с нулевым указателем возникает, когда вызывается функция с параметром, который не был инициализирован, но назад через мой код, следуя вызовам метода, я не мог найти ничего, что нигде не было определено. Я думаю, что эти другие сообщения об ошибках помогут мне узнать, откуда приходит нулевой указатель.
Заранее благодарим и извиняюсь, если я нарушил некоторые правила здесь.
Редактировать 1: Я инициализирую firstDate следующим образом: `private ExtDate firstDate; ' Я попробую эти заявления для печати, может быть, это поможет.
Edit2: Хорошо, я думаю, что у меня это есть. Спасибо за помощь. Процесс обучения и все такое.
моя первая догадка 'firstDate' is null – PermGenError
firstDate или console is null. трудно сказать из того, что вы опубликовали. – duffymo
Как вы инициализируете 'firstDate'? –