当前位置: 首页 > 面试题库 >

使用Lambda在Java流中使用参数调用构造函数

夹谷辰沛
2023-03-14
问题内容

我想为MySortedSet调用一个构造函数,该构造函数将Comparator c作为参数。我该如何修改呢?

public MySortedSet<E> subSet(E fromElement, E toElement) {
     return list.stream()
            .filter(x -> (list.indexOf(x) <= list.indexOf(fromElement)
                    && list.indexOf(x) < list.indexOf(toElement)))
            .collect(Collectors.toCollection(MySortedSet<E> :: new));
}

问题答案:

如果要传递其他捕获的值作为参数,则不能使用方法引用。您将不得不使用lambda表达式来代替:

MySortedSet<E> :: new

=>

() -> new MySortedSet<E>(c)


 类似资料:
  • 我是java / kotlin函数式编程的新手,并做了一些练习。只是想知道如何在调用它时传递lambda的参数。例如,在这里调用一些方法,我需要传递一个Int参数。 如何做到这一点?答案可能非常简单,我只是没有在任何地方找到它,在文档中只有列表的例子,在这种情况下答案是清楚的:

  • 我有一个 Scala 类,它使用 Apache Spark 中的 MR 作业返回输入类型 IN 的最大值。如果我从Scala调用它,这个类工作正常,它的工作原理如下: 现在我想让它也可以从java中调用,但是我在传递隐式参数时遇到了一些困难。我知道隐式参数可以通过在Java中将它们追加到参数列表中来传递,但是隐式参数是在Scala中。因此,我正在努力做到以下几点: 然后可以从java调用: 我尝试

  • 所以我正在我的Java项目(Google Guice)中实现一个依赖注入框架,一切都很好,我喜欢它,但是有一个小问题;我想为我的主项目的类创建一个静态实例(实例化依赖项等)。但是我不知道使用Guice实例化它的任何方法,我不能手动实例化它,因为我在它的构造函数中使用DI(我在构造函数中有对象),这意味着我不能访问实例化该类所需的类的非静态变量。我试着使用一个提供者,但是我真的不明白在哪里绑定它,因

  • 上面写着编译错误 Employee::new、1L、“”、“ 无法解析构造函数。

  • 我需要制作两个lambda函数,一个用参数调用另一个,被调用的函数将参数打印出来。我很难让它工作:第一个函数: 请告知我应该在被调用函数中输入什么代码才能接收参数“hello Jenny”?非常感谢。

  • 问题内容: 如何使AB的构造函数使用适当的参数调用A和B的构造函数? 我试过了 但这给我一个错误。 问题答案: 你没有通过。 请注意,如果这种继承层次结构变得更加复杂,则会遇到构造函数无法执行或无法重新执行的问题。外观到(和问题与),并从不要忘记继承如果你在2.x和你的类不从别的继承。