gpt4 book ai didi

java - 在 hashmap 中,使用就地对象实例化设置自定义对象值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:38 26 4
gpt4 key购买 nike

我正在创建一个以自定义对象(例如 Employee)为键的 HashMap。我没有对 Employee 类的修改权限。Employee 对象没有 args 构造函数说 Map<String, Employee> empMap是我的 map 对象。如何就地实例化对象并设置值并将其放入 map 中。

Map<String, Employee> mymap = new HashMap<>();
myMap.put("employee_key", () -> {
Employee e = new Employee();
e.setSalary(10000);
return e;
});

这显示错误:lambda 转换的目标类型必须是接口(interface)。

不想做的事:

myMap.put("employee_key", getEmployee(1000));
private Employee getEmployee(int salary){
Employee e = new Employee();
e.setSalary(salary);
return e;
}

简而言之,我希望在将其作为值放入 map 时进行适当的实例化和赋值,无需使用额外的方法

最佳答案

我同意 deHaar 的观点,即简单地使用 put,有或没有方便的方法,可能是你最好的选择。但是,使用 compute 方法可以很好地实现您的要求:

myMap.compute("employee_key", (k, v) -> {
Employee e = new Employee();
e.setSalary(10000);
return e;
});

关于java - 在 hashmap 中,使用就地对象实例化设置自定义对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com