I have made static methods in Person.java.. otherwise, my method doWork in Solution-class wouldn't work.. e.g. Person.User.live();
But I can't pass the last requirements?.. Anyone who can tell what I am doing wrong?
package com.codegym.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
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 = null;
String key = null;
while ((key = reader.readLine()).matches("user|loser|coder|programmer")) {
if ("user".equals(key)) {
person = new Person.User();
} else if ("loser".equals(key)) {
person = new Person.Loser();
} else if ("coder".equals(key)) {
person = new Person.Coder();
} else if ("programmer".equals(key)) {
person = new Person.Programmer();
}
doWork(person); // Call doWork
}
}
public static void doWork(Person person) {
if (person instanceof Person.User) {
Person.User.live();
}
if (person instanceof Person.Loser) {
Person.Loser.doNothing();
}
if (person instanceof Person.Coder) {
Person.Coder.writeCode();
}
if (person instanceof Person.Programmer) {
Person.Programmer.enjoy();
}
}
}