gpt4 book ai didi

Java 8 : Function (Expression) which only returns a value and does not accept any argument

转载 作者:行者123 更新时间:2023-12-02 12:49:59 25 4
gpt4 key购买 nike

在 .Net Frameworks 中,我们有 Func<out TResult>它可能会也可能不会接受任何参数,但会返回一些东西。具体来说,使用它时我们可以这样做:

int funcTest (Func<int> arg){ return arg();}
-->
int i = funcTest(()=>{return 1;})

这是Function在 Java 中总是需要一个输入参数( Function<T,R> )。在某些情况下,我们需要类似于我在问题开头解释的 .Net 示例的表达式。尽管可以通过将 null、零、真/假或任何其他虚拟值作为参数传递给表达式来处理这些情况,但这绝对不是处理此类情况的标准且明智的解决方案。

我搜索了java.util.function库,我发现该命名空间中的大多数表达式类型都需要输入参数,因此我决定发布这个问题,看看 java 标准库中是否提供了类似于 Func<Result> 的表达式。在.Net中。

最佳答案

界面java.util.function.Supplier就是您正在寻找的:一个不带参数并返回值的函数。

int funcTest(Supplier<Integer> arg) {
return arg.get();
}

int i = funcTest(() -> 1);

还有专门的供应商要避免auto-(un)boxing ,例如IntSupplier:

int funcTest(IntSupplier arg) {
return arg.get();
}

int i = funcTest(() -> 1);

如果您使用此功能,则不必将 int 装箱到 Integer 或从 Integer 拆箱。

关于Java 8 : Function (Expression) which only returns a value and does not accept any argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846726/

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