Не могу немного понять нотацию написания. Вот так ругается, подчеркивает первую строку и говорит "This method must return a result of type boolean"
Код: Выделить всё
private boolean Compare(int dbYear,int dbDay){
Calendar calendar=Calendar.getInstance();
int exYear=calendar.get(Calendar.YEAR);
int exDayOfYear=calendar.get(Calendar.DAY_OF_YEAR);
if (exYear==dbYear){
if (exDayOfYear==dbDay){
return true;
}
}else{
return false;
}
}
Но ведь я аж явно ему задаю возвраты обоих его возможных значений. При этом на это код не ругается и нормально отрабатывает:
Код: Выделить всё
private boolean Compare(int dbYear,int dbDay){
Calendar calendar=Calendar.getInstance();
int exYear=calendar.get(Calendar.YEAR);
int exDayOfYear=calendar.get(Calendar.DAY_OF_YEAR);
if (exYear==dbYear){
if (exDayOfYear==dbDay){
return true;
}
}
return false;
}
Очень странно мне это...пошагово получается слудующее (передаю аргументы так, чтобы получить true) - после второй проверки курсор НЕ переходит на return true, а скачет на return false, но при этом возвращает именно true, как и должно быть...Вообще не понимаю ))) И еще...т.к. return false вынесено в конец, то по идее должен вернуть в любом случае false, но это не происходит, и возвращается корректное значение....В VB логика бы нарушилась, а тут работает правильно. Почему?