【发布时间】:2020-07-02 01:13:04
【问题描述】:
我有以下任务:
设计一个类,其对象具有方法:
setValue,给定一个字符串和一个整数值,将值与变量的名词相关联
getValue返回与给定字符串关联的整数值
execute依次调用给定的 lambda 表达式列表,其中每个表达式获取类的一个实例,不返回任何内容,并通过方法 setValue 和 作用于类获取值。
因此,例如,在以下之后:
MyClass instance = new MyClass();
instance.execute(List.of(e -> e.setValue("x", 1),
e -> e.setValue("y", 2)));
instance 应该包含值 1 表示“x”,2 表示“y”。
这是我到目前为止所做的,我认为还可以:
public class MyClass {
private Map<String,Integer> map;
public int getValue(String name) {return map.get(name);}
public void setValue(String name, int value) {map.put(name, value);}
我没有看到execute 的路要走。我知道我需要这些 lambda 表达式的功能接口,但是我无法解决 Eclipse 在编写 instance.execute(List.of(...)) 时显示的错误,例如“List 类型中的方法of(Object, Object) 不适用于参数((<no type> e) -> {}, (<no type> e) -> {})。
我怎样才能让它发挥作用?
【问题讨论】:
标签: java class inheritance lambda