Небольшой побочный проект, который я выполнял для развлечения, включает в себя вычитание текущей даты из будущей даты, заданной пользователем, чтобы получить количество дней между ними.
public int getDaysBetween(int date2)
{
//Subtract current date from future date (date2), leaving the number of days between them
int getDaysBetween = 0;
Calendar myCalendar = Calendar.getInstance();
myCalendar.get(Calendar.DAY_OF_YEAR);
getDaysBetween = date2-Calendar.DAY_OF_YEAR;
return getDaysBetween;
}
Метод для этого не является статическим, так как изменяется date2
int. Однако, когда я пытаюсь сослаться на него в своем основном классе...
//Figure out a non-static reference
int date2 = Integer.parseInt(JOptionPane.showInputDialog("Enter a day in the year ahead of today"));
message = "Days bewteen: " + Date.getDaysBetween(date2-Calendar.DAY_OF_YEAR);
JOptionPane.showMessageDialog(null, message);
Я получаю сообщение об ошибке, что на нестатический метод нельзя ссылаться из статического контекста.
Я новичок в Java, поэтому большинству из вас это может показаться простым, но мне не помешала бы помощь.
Заранее спасибо!
static
не означает, что параметр метода может измениться, это означает, что поля/методы принадлежат классу, а не экземпляру класса. Таким образом, вы должны сделать свой метод здесьstatic
. - person Jyr   schedule 09.05.2015