Почему ругается валидатор?
Он считает, что объект User не создается.
package com.javarush.task.task14.task1411;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;
/*
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;
while (reader.ready()) {
key = reader.readLine();
if (key.equalsIgnoreCase("user")) {
person = new Person.User() {
@Override
void live() {
super.live();
}
};
} else if (key.equalsIgnoreCase("loser")) {
person = new Person.Loser() {
@Override
void doNothing() {
super.doNothing();
}
};
} else if (key.equalsIgnoreCase("coder")) {
person = new Person.Coder() {
@Override
void writeCode() {
super.writeCode();
}
};
} else if (key.equalsIgnoreCase("proger")) {
person = new Person.Proger() {
@Override
void enjoy() {
super.enjoy();
}
};
} else {
break;
}
doWork(person);
}
//тут цикл по чтению ключей, пункт 1
{
//создаем объект, пункт 2
//вызываем 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.Proger) {
((Person.Proger) person).enjoy();
} else {
System.out.println("Вы слишком мутный тип");
}
// пункт 3
}
}