当前位置: 首页 > 知识库问答 >
问题:

java lambda可以有一个以上的参数吗?

郦祺
2023-03-14
    Function <Integer, Integer> adder = i -> i + 1;
    System.out.println (adder.apply (10));
    Function <Integer [], Integer> multiAdder = ints -> {
        int sum = 0;
        for (Integer i : ints) {
            sum += i;
        }
        return sum;
    };

    //.... 
    System.out.println ((multiAdder.apply (new Integer [] { 1, 2, 3, 4 })));
    Function <String, Integer, Double, Person, String> myLambda = a , b, c, d->  {
    [DO STUFF]
    return "done stuff"
    };

主要用途是为了方便,在函数内部有小的内联函数。

我环顾了谷歌,检查了Java的函数包,但是没有找到。这可能吗?

共有1个答案

滑畅
2023-03-14

如果您用多个类型参数定义这样的函数接口,这是可能的。没有这样的内置类型。(有几个有限的类型具有多个参数。)

@FunctionalInterface
interface Function6<One, Two, Three, Four, Five, Six> {
    public Six apply(One one, Two two, Three three, Four four, Five five);
}

public static void main(String[] args) throws Exception {
    Function6<String, Integer, Double, Void, List<Float>, Character> func = (a, b, c, d, e) -> 'z';
}

我在这里将其称为function6。名称由您决定,只是尽量不要与Java库中的现有名称冲突。

也没有办法定义可变数量的类型参数,如果这是您想要的。

 类似资料:
  • 问题内容: 在Java中,lambda是否可以接受多种不同类型? 即:单个变量起作用: Varargs也可以工作: 但是我想要可以接受许多不同类型参数的东西,例如: 为了方便起见,主要用途是在函数内部具有小的内联函数。 我环顾了Google并检查了Java的Function Package,但找不到。这可能吗? 问题答案: 如果使用多个类型参数定义这样的功能接口,则是可能的。没有这样的内置类型。(

  • 问题内容: 我正在尝试选择和以外的所有s的元素。 许多人表明您可以在中放置多个参数,但是无论如何,尝试使用似乎都行不通。 有任何想法吗? 问题答案: 为什么:不只是使用两个: 是的,这是故意的

  • 问题内容: 是否可以直接声明Flask URL可选参数? 目前,我正在按照以下方式进行: 我如何直接说这是可选的? 问题答案: 另一种方法是写 但是我想你想编写一条路由并将其标记为可选?如果是这样,我认为不可能。

  • 问题内容: 我正在尝试使用 在我的Matrix类上,但是在我看来,它是行不通的(我仍然不太清楚使用python)。我这样称呼它: 是否可以使用多个参数?谢谢。也许我只能使用一个参数,但是将其作为元组传递? 问题答案: 仅接受一个参数(除外),因此您可以通过一个元组。 你可以这样做: 输出 查看文档的更多信息。

  • null 我可以推断,在Java中,这种类型的方法可以应用于带有一个参数的函数接口。 还有,有没有一个参数函数接口的例子,函数有一个参数,不像上面的例子?

  • 问题内容: 我在这里遵循规范,不确定是否允许使用多个参数调用onFulfilled。例如: 这样我的代码: 会同时收到和? 我不在乎任何特定的promise实现如何实现,我希望严格遵循w3c规范中的promise。 问题答案: 我在这里遵循规范,不确定是否允许使用多个参数调用onFulfilled。 不,在promise构造函数中,仅第一个参数将被视为分辨率值。您可以使用诸如对象或数组之类的复合值