У вас есть опечатка в геттере.Ваши if
условия фактически устанавливают значение поля экземпляра, вместо проверки его:
if (this.hasDriverLicence = true)
Это должно быть:
if (this.hasDriverLicence == true)
Или лучше просто:
if (this.hasDriverLicence) {
// ...
// no need for a separate if statement for the opposite condition,
// and you can only have two states here
else {
// ...
}
Поэтому переменная присваивается, но никогда не используется в вашем коде.
Разработка
Причина, по которой сингл =
компилируется, но IDE выдает предупреждение о том, что переменная никогда не используется, заключается в том, что назначениеОператор возвращает присвоенное значение .
Например, оператор:
myVariable = 1
... возвращает 1
.
Поэтому, когда вы неправильно проверяете назначение (=
), а не примитивное равенство (==
), вы всегда будете проверять значение вашего назначения (в вашемcase, true
в первом условии, которое будет всегда выполняться, false
во втором, которое, следовательно, никогда не будет выполняться).