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

API“String::Concat”[duplicate]中的奇怪语法

冯育
2023-03-14

我查看了Java SE API 1.8所做的一些更改,当我查看新方法map.merge时,它展示了一个如何将其与下面一行一起使用的示例

map.merge(key, msg, String::concat)

我了解如何使用lambda表达式创建匿名函数接口,但这似乎是使用一个方法作为一个双重功能。我喜欢理解和使用晦涩难懂的java语法,但我在任何地方都找不到这一点。

共有1个答案

陈夜洛
2023-03-14

String::Concat是对String类的Concat()方法的引用。

bifunction是一个函数接口,它有一个方法apply,它接受两个参数(第一个参数为T类型,第二个参数为U),并返回r类型的结果(换句话说,接口bifunction 有一个方法r apply(T T,U U))。

map.merge需要一个bifunction<?超级V?超级V?扩展v>作为第三个参数,其中v映射的值。如果您的映射具有字符串值,则可以使用任何接受两个字符串参数并返回字符串的方法。

String::Concat满足这些要求,这就是为什么可以在Map.merge中使用它。

它满足这些要求的原因需要解释:

String::concat的签名是public String concat(String str)

 类似资料:
  • 我正在研究对Java SE API 1.8所做的一些更改,在研究新的方法map.merge时,它展示了如何与行一起使用它的示例 我理解如何使用一个lambda表达式来创建匿名函数接口,但这似乎是将一个方法用作双函数。我喜欢理解和使用晦涩难懂的java语法,但我在任何地方都找不到提到过这一个。

  • 描述 (Description) java.lang.String.concat()方法将指定的字符串连接到此字符串的末尾。 声明 (Declaration) 以下是java.lang.String.concat()方法的声明 public String concat(String str) 参数 (Parameters) str - 这是连接到此String末尾的String。 返回值 (Re

  • 描述 (Description) java.lang.String.concat()方法将指定的字符串连接到此字符串的末尾。 声明 (Declaration) 以下是java.lang.String.concat()方法的声明 public String concat(String str) 参数 (Parameters) str - 这是连接到此String末尾的String。 返回值 (Re

  • 描述 (Description) 此方法将一个String附加到另一个String的末尾。 该方法返回一个String,其String值传递给方法,附加到String的末尾,用于调用此方法。 语法 (Syntax) 以下是此方法的语法 - public String concat(String s) 参数 (Parameters) 这是参数的细节 - s - 连接到此String末尾的Strin

  • 问题内容: 在弄乱Eclipse中的自定义格式设置选项的同时,在示例代码之一中,我看到了如下代码: 我从未见过像这样使用过,并且我从事Java编程已有9年了!有谁知道你为什么要这么做?这样做的可能用例/好处是什么? 我看到的另一段代码,我认为这是一个非常有用的速记,因此我也在这里共享了它,它的作用很明显: 问题答案: 它是在Java 7中添加的。它称为try-with- resources 语句。

  • 问题内容: 我通常对JOINS十分熟悉,但这是新的。 假设三个表(两个表的典型情况和第三个链接器表): (出于简化目的,我无法复制实际的结构,这不是我的代码。) 通常,要获得“谁在什么时候买了什么”的表格,我可以这样做: 但是我已经看到了这个: 这是什么?只是另一种语法,还是一种性能技巧? (它在SQLServer,FYI上,但是大概可以应用于其他…) 问题答案: 括号不会改变语义。子句的位置控制