gpt4 book ai didi

java - 如何将 getter 作为 lambda 函数传递?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:03 24 4
gpt4 key购买 nike

我想将 bean 的 getter 作为函数传递。当函数被调用时,应该调用 getter。示例:

public class MyConverter {
public MyConverter(Function f) {
this.f = f;
}

public void process(DTO dto) {
// I just want to call the function with the dto, and the DTO::getList should be called
List<?> list = f.call(dto);
}
}

public class DTO {
private List<String> list;
public List<String> getList() { return list; }
}

Java 8 可以吗?

最佳答案

如果 MyConverter 的构造函数必须带一个函数,而 process 必须带一个对象,这可能是最好的方法:

class MyConverter<T> {
// V takes a thing (in our case a DTO)
// V returns a list of Strings
private Function<T, List<String>> f;

public MyConverter(Function<T, List<String>> f) {
this.f = f;
}

public void process(T processable) {
List<String> list = f.apply(processable);
}
}

MyConverter<DTO> converter = new MyConverter<>(DTO::getList);

DTO dto = new DTO();
converter.process(dto);

关于java - 如何将 getter 作为 lambda 函数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068424/

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