gpt4 book ai didi

java - Java 中分配给功能接口(interface)的对象是什么?

转载 作者:行者123 更新时间:2023-12-01 20:00:12 26 4
gpt4 key购买 nike

我是 Java 中的 Lambda 表达式新手,所以如果这个问题看起来很愚蠢,请不要 react 太严厉:如果我将它分配给 FunctionalInterface ,实际实现的对象是什么? ?即,如果我这样做List<String> lst = new ArrayList<>()我实现了 ArrayList目的。如果我这样做 Function<String,String> fct = s -> s 会创建什么对象? ?该对象是不可变的吗?即拥有 public static final Function<String,String> REUSE_OFTEN = s -> String.valueOf(s) 是否有意义? ?

最佳答案

当您编写 lambda 表达式时 -

Function<String,String> fct = s -> s;

它只是创建一个实现 Function<String, String> 的匿名类接口(interface)并重写其唯一方法 apply()使用 s -> s 提供的实现。并将这个对象分配给Function<String, String>引用。

Function<String,String> fct = new Function<>() {
@Override
public String apply(String s) {
return s;
}
};

它是一个不可变的对象,拥有 public static final Function<String,String> REUSE_OFTEN = s -> String.valueOf(s) 确实有意义。因为您可以重用相同的对象来通过不同的输入应用此操作。

关于java - Java 中分配给功能接口(interface)的对象是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234360/

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