Why I get this error:
com/codegym/task/task14/task1411/Solution.java:15: error: cannot infer type arguments for java.util.HashMap<K,V>
HashMap<Integer, String> persons = new HashMap<>(){{
^
reason: cannot use '<>' with anonymous inner classes
Input data
package com.codegym.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
/*
User, loser, coder and programmer
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
HashMap<Integer, String> persons = new HashMap<>(){{
put(1, "user");
put(2, "loser");
put(3, "coder");
put(4, "programmer");
}};
String str;
do{
str = reader.readLine();
if (str.equals("user")){
doWork(new Person.User());
}else if (str.equals("loser")){
doWork(new Person.Loser());
}else if (str.equals("coder")){
doWork(new Person.Coder());
}else if (str.equals("programmer")){
doWork(new Person.Programmer());
}
}while(persons.containsValue(str));
}
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();
}
}
}