не проходят третьи пункт! Я пытался с помощью лупа на каждом этапе выводить в консоль, потом остановить. Но, считывается только последний оператор instanceof !
package com.javarush.task.task14.task1411;
import sun.font.DelegatingShape;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
/*
User, Loser, Coder and Proger
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = null;
String key = null;
//тут цикл по чтению ключей, пункт 1
HashSet set = new HashSet();
set.add("user");
set.add("loser");
set.add("coder");
set.add("proger");
while (set.contains(key= reader.readLine())){
if (key.equals("user")) person = new Person.User();
else if(key.equals("loser")) person = new Person.Loser();
else if (key.equals("coder")) person = new Person.Coder();
else if (key.equals("proger")) person = new Person.Proger();
}
//создаем объект, пункт 2
doWork(person); //вызываем doWork
}
public static void doWork (Person person){
// пункт 3
if (person instanceof Person.User) ((Person.User) person).live();
else if (person instanceof Person.Loser) ((Person.Loser) person).doNothing();
else if (person instanceof Person.Coder) ((Person.Coder) person).writeCode();
else if (person instanceof Person.Proger) ((Person.Proger) person).enjoy();
}
}