Компилятор ругается:
Убедись, что при вводе с консоли слова user создается экземпляр класса User
Вывод в консоль по результатам выполнения программы такой:
I usually just live.
I usually do nothing.
I usually write code.
It's a wonderful life!
package com.javarush.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
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;
while (true) {
key = reader.readLine();
if (!(key.equals("user")) &&
!(key.equals("loser")) &&
!(key.equals("coder")) &&
!(key.equals("proger"))) { break; }
switch (key) {
case "user": person = new Person.User(); doWork(person); break;
case "loser": person = new Person.Loser(); doWork(person); break;
case "coder": person = new Person.Coder(); doWork(person); break;
case "proger": person = new Person.Proger(); doWork(person); break;
default: throw new IllegalStateException("Unexpected value");
}
}
}
public static void doWork(Person person) {
switch (person.getClass().getSimpleName()) {
case "User": person.live(); break;
case "Loser": person.doNothing(); break;
case "Coder": person.writeCode(); break;
case "Proger": person.enjoy(); break;
default: throw new IllegalStateException("Unexpected value");
}
}
}