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

双函数可以用来替换Java 8中的元组吗?[副本]

柳绪
2023-03-14

在Java8中进行函数式编程时,我需要一个像任何函数式编程语言一样的元组,但后来我发现语言设计者可能通过创建bifunction来解决对元组的需求。

如果你需要一个包含2个参数的函数,你必须使用Bifunction而不是function,但是我找不到任何关于这个的文档,是Java8真的缺少元组,还是Bifunction可以代替它的使用?

编辑1:

这个问题不是“Java SE8有对还是有元组?”由于这里的大多数是双函数,而在另一个问题中没有提到,我认为现在的问题标题更多的是描述性的。

共有1个答案

汪丁雷
2023-03-14

您不应该使用bifunction,因为它与您要做的事情的语义并不匹配。我也不明白您如何提议从bifunction中获得两个不同的值,因为它只返回一种类型的一个元素。

Apache Commons-Lang有一个元组包可以使用。

否则,我建议创建一个包含两个命名字段的类,以便捕获配对的语义。

class UserName {
    private String userName, phoneNumber;
}
class UserPassword {
    private String userName, password;
}

否则,您将试图抽象数据的形状,而不是类的类型或语义,这在Java中是非常不惯用的。有关该主题的更多信息,请参阅作为评论发布的答案。

 类似资料:
  • 给定以下变量 我想使用以下代码将占位符${name}替换为值“joe”(这不起作用) 但是,如果我按照“老式”的方式来做,一切都运行得很完美: )我一定漏了点什么

  • 问题内容: 给定以下变量 我想使用以下代码将占位符$ {name}替换为值“ Joe”(不起作用) 但是,如果我采用“旧式”方式,则一切都将正常运行: 我肯定在这里想念的东西:) 问题答案: 您还可以使用Stream.reduce(identity,accumulator,combiner)。 身份 是减少函数的初始值。 累加器 减少到,如果流是 顺序的 ,这是下一个减少的条件。 合路器 永远不要

  • 问题内容: 我在整个项目中都用过;但是我刚刚了解到,PHP 5.5起已弃用该功能,而PHP 7中已将其删除。 因此,我想知道是否可以盲目替换项目中的所有功能吗?例如,仅替换为。有副作用吗? 问题答案: 简短的回答是 no ,功能不相等。 好消息是,有一个转换工具可以在您需要更改许多调用/项目时为您提供帮助。这将使您的脚本立即可用。 https://github.com/philip/MySQLCo

  • 问题内容: 首先,当我问一个非常基本且特殊的问题时,我感到很遗憾;但是我对Java和编程都不陌生。我研究了system.out.println()中的“ out”是系统类的对象。“ out”可以用系统类的任何其他对象替换吗?如果是这样,成员是什么? 问题答案: 您可以拨打任何电话。如果您查看javadoc,则会发现另一个静态字段,即。例如: 如果您想用自己的输出流实际替换标准,则可以将流传递给或相

  • 问题内容: 您可以在Python中执行此操作,但是在PHP中可以吗? 例如: 问题答案: 这 有点 晚了,但我只想指出,自PHP 5.3起,实际上有可能在不使用PHP扩展的情况下覆盖内部函数。 诀窍是您可以在名称空间内重新定义内部PHP函数。它基于PHP对函数进行名称解析的方式: 在名称空间(例如A \ B)内部,对不合格函数的调用在运行时解决。解决调用foo()的方法如下: 它从当前名称空间中查

  • 问题内容: 我有这段代码,我想知道,是否可以替换Java正则表达式中的仅组(不是所有模式)。码: 问题答案: 使用(其中n是数字)来引用中捕获的子序列。我假设您想用文字字符串 “ number” 替换第一组,并用第一组的值替换第二组。 考虑第二组而不是。 是一个贪婪的匹配器,首先会消耗最后一位。当匹配器意识到最终的匹配项时,匹配器将不得不回溯,然后才可以匹配最终的数字。