Вам нужно на самом деле построить Employee
, используя new
. Что-то вроде:
public class Employee {
private final String name;
public Employee(String name) {
this.name = name;
}
public static Map<String,Employee> load() throws FileNotFoundException {
TreeMap<String, Employee> map = new TreeMap<>();
Scanner in = new Scanner(new File("employees.txt"));
while(in.hasNextLine()) {
String[] input = in.nextLine().split(" ");
map.put(input[0], new Employee(input[1]));
}
return map;
}
}
Лучшим дизайном было бы иметь ваши логики загрузки c в отдельном классе. Использование нескольких более свежих Java функций:
record Employee(String name) { }
public class EmployeeIndex {
private final Map<String,Employee> index;
public EmployeeIndex(String filename) {
this.index = Files.lines(Paths.get(filename))
.map(String::split)
.collect(Collectors.toMap(a -> a[0], a -> new Employee(a[1]));
}
}