У вас есть две проблемы здесь.
Сначала ваша переменная smoker
имеет тип boolean
. Который является примитивным типом. Примитивный тип не является объектом, вы не можете вызвать метод или атрибут для него. Таким образом, вы не можете написать smoker.someAttribute
или smoking.someMethod()
. Вот почему вы получаете это исключение.
Во-вторых, ваша переменная имеет тип boolean
, поэтому вы можете влиять только на логическое значение. Но вы пытаетесь повлиять на строку, она, очевидно, потерпит неудачу. Эта ошибка является скрытой причиной первой.
Решение одинаково для обеих проблем. Либо проверьте непосредственно вход консоли, либо передайте его переменной String
, а затем проверьте значение этой переменной. Затем после проверки измените правильное логическое значение на smoker
.
При прямой проверке:
boolean smoker = false;
if(console.nextLine().equalsIgnoreCase("y")){
smoker = true;
}
со строковой переменной
boolean smoker = false;
String consoleInput = console.nextLine();
if(consoleInput.equalsIgnoreCase("y")){
smoker = true;
}