Ich brauche bitte einmal Hilfe:
Output ist augenscheinlich korrekt, leider ist die dritte Bedingung nicht erfüllt:
Rufe für jede korrekt eingegebene Zeichenkette („benutzer“, „verlierer“, „codierer“, „programmierer“) die Methode doWork mit dem entsprechenden Person-Objekt als Parameter auf.
package de.codegym.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Benutzer, Verlierer, Codierer und Programmierer
*/
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;
boolean inputValid = true;
while (inputValid)
{
key = reader.readLine();
switch (key) {
case "benutzer":
person = new Person.User();
break;
case "verlierer":
person = new Person.Loser();
break;
case "codierer":
person = new Person.Coder();
break;
case "programmierer":
person = new Person.Programmer();
break;
default:
inputValid = false;
person = null;
break;
}
doWork(person);
}
}
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();
}
}