need hint
package com.codegym.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
User, loser, coder and programmer
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = new Person.Loser();
String key=null;
ArrayList<String> list = new ArrayList<>();
while(true){
key = reader.readLine();
if(!(key.equals("user") || key.equals("loser") || key.equals("coder") || key.equals("programmer")) ){
break;
}
list.add(key);
}
// Here's the loop for reading the keys. Item 1
for(String a: list){
if(a.equals("user")){
person= new Person.User();
}
else if(a.equals("loser")){
person = new Person.Loser();
}
else if(a.equals("coder")){
person = new Person.Coder();
}
else if(a.equals("programmer")){
person = new Person.Programmer();
}
}
// Create an object. Item 2
doWork(person); // Call doWork
}
public static void doWork(Person person) {
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.Programmer){
((Person.Programmer) person).enjoy();
}
// Item 3
}
}