divyaのジャイナ教:
私はキーとしてカスタムオブジェクト(たとえば従業員)とのHashMapを作成しています。私は、Employeeクラスへの変更アクセス権を持っていません。Employeeオブジェクトには引数を持たないコンストラクタと言うがMap<String, Employee> empMap
、私のマップオブジェクトです。どのように私は場所と設定値でオブジェクトのインスタンスを作成し、マップにそれを置くことができます。
Map<String, Employee> mymap = new HashMap<>();
myMap.put("employee_key", () -> {
Employee e = new Employee();
e.setSalary(10000);
return e;
});
この番組エラー:ラムダ変換のターゲット・タイプは、インターフェイスである必要があります。
どのような私はいけないやりたいです。
myMap.put("employee_key", getEmployee(1000));
private Employee getEmployee(int salary){
Employee e = new Employee();
e.setSalary(salary);
return e;
}
マップ内の値としてそれを入れながら要するに、私は場所のインスタンス化と割り当てに期待してい余分なメソッドを使用せずに。
MikeFHay:
私は単純に使用してdeHaarに同意put
したりする便利なメソッドなしで、おそらくあなたの最良の選択肢です。あなたはかなりきれいに使用して達成することができるために求めてきましたがどのようなcompute
方法を:
myMap.compute("employee_key", (k, v) -> {
Employee e = new Employee();
e.setSalary(10000);
return e;
});