java - 在 Java 中,什么类型表示函数或带有 3 个参数的 lambda 表达式?

标签 java c# lambda java-8

Java 8 有 Supplier<T>对于 0 参数函数,Function<T, R>对于 1 个参数函数,和 BiFunction<T, U, R>对于 2 个参数函数。

什么类型表示函数或 lambda 表达式,如中所示,采用 3 个参数

SomeType lambda = (int x, double y, String z) -> x; // what is SomeType?

在 C# 中,Func<T, TResult>最多可重载 16 个参数,因此我们可以这样写

Func<int, double, string, int> lambda = (int x, double y, string z) => x;

Java 标准库是否提供类似的东西,或者您是否必须编写自己的“TriFunction”接口(interface)来处理具有 3 个参数的函数?

最佳答案

您必须编写自己的功能接口(interface)。 JDK 没有提供这样的实现。

请注意,您始终可以使用现有类型组合类似 TriFunction 的东西

Function<Integer, Function<Double, Function<String, Integer>>> func =
  i -> d -> s -> i + d.intValue() + Integer.parseInt(s);//whatever random implementation
func.apply(42).apply(1.5).apply("1234");

关于java - 在 Java 中,什么类型表示函数或带有 3 个参数的 lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979151/

相关文章:

Java:防止编码字符串的自动解码

java - 无论如何,要在我的本地文件系统上包含另一个 Maven 项目作为依赖项?

c# - 当用户计算机上运行带有MySQL数据库的软件时,我们需要什么?

c# - 如何在 .NET 中将 C# 对象转换为 JSON 字符串?

node.js - bcrypt 不适用于 lambda 无服务器

java - Lambda 'special void-compatibility rule' - 语句表达式

java - jsr-303 实体验证错误未在 jsp 中显示

java - 使用Java类调用Web服务无结果

c# - DataGridView 列中的计算

java - 二维数组的流式操作