Вот ваш код:
if ((mice.get(i).getIsMale ^ mice.get(j).getIsMale) &&
(mice.get(i).getAge > 1 ) &&
(mice.get(j).getAge > 1 )) {
// ...
}
То, как это написано, вы говорите: «Дайте мне значение поля getIsMale
» и так далее. Это getAge
и getIsMale
не поля: это методы. Таким образом, вы должны позвонить им:
if ((mice.get(i).getIsMale() ^ mice.get(j).getIsMale()) &&
(mice.get(i).getAge() > 1 ) &&
(mice.get(j).getAge() > 1 )) {
// ...
}
(Причина, по которой компилятор Java говорит «символ не найден», а не «его поле»), заключается в том, что имена полей и имена методов находятся в разных пространствах имен. Если вы хотите, вы можете написать класс, который имеет поле с именем foo
и метод с именем foo
. Итак ... компилятор сообщает вам об обнаруженной ошибке, а не пытается угадать, что вы на самом деле имели в виду.)
Незначительный момент: соглашение JavaBeans гласит, что метод получения логического свойства должен называться isXxx
, а не getXxx
. Вы должны переименовать getIsMale()
в isMale()
.