gpt4 book ai didi

java - 使用函数引用等将代码转换为 Java 8 方法

转载 作者:行者123 更新时间:2023-12-03 00:58:46 24 4
gpt4 key购买 nike

我有一个类如下:

public class MyClass {  
interface MyBuilder {
List<MyObject> initObjects(String quantifier);
}

private static class Builder1 implements MyBuilder {
@Override
List<MyObject> initObjects(String quantifier) {
// code omitted for clarity

}
}

private static class Builder2 implements MyBuilder {
@Override
List<MyObject> initObjects(String quantifier) {
// code omitted for clarity

}
}

private static HashMap<String, MyBuilder> builders = ….;
static {
builders.put("type1", new Builder1());
builders.put("type2", new Builder2());
}
//etc

有没有办法通过 Java8 将此代码转换为函数引用并以某种方式使其“更短”?
我想练习一些带有函数引用等的 Java8 习惯用法

最佳答案

因为MyBuilder是一个功能接口(interface)(具有单个方法的接口(interface)),您可以内联 Builder1 的实现和Builder2 :

static {  
builders.put("type1", quantifier -> /*code here*/);
builders.put("type2", quantifier -> /*code here*/);
}

此外,您的MyBuilder接口(interface)相当于 java.util.function.Function<String, List<MyObject>> :

private static HashMap<String, Function<String, List<MyObject>> builders = ….;  

关于java - 使用函数引用等将代码转换为 Java 8 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44670551/

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