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

Siq*_*Lin 5 c# java lambda java-8

Java 8具有Supplier<T>0个参数功能,Function<T, R>1个参数功能和BiFunction<T, U, R>2个参数功能.

什么类型表示一个函数或lambda表达式,它接受3个参数,如in

SomeType lambda = (int x, double y, String z) -> x; // what is SomeType?
Run Code Online (Sandbox Code Playgroud)

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

Func<int, double, string, int> lambda = (int x, double y, string z) => x;
Run Code Online (Sandbox Code Playgroud)

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

Sot*_*lis 6

你必须编写自己的功能界面.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");
Run Code Online (Sandbox Code Playgroud)