我正在研究对Java SE API 1.8所做的一些更改,在研究新的方法map.merge时,它展示了如何与行一起使用它的示例
map.merge(key, msg, String::concat)
我理解如何使用一个lambda表达式来创建匿名函数接口,但这似乎是将一个方法用作双函数。我喜欢理解和使用晦涩难懂的java语法,但我在任何地方都找不到提到过这一个。
String::concat
是对String类的concat()
方法的引用。
biFunction
是一个具有单个方法apply
的函数接口,它接受两个参数(T
类型的第一个参数和U
类型的第二个参数),并返回一个r
类型的结果(换句话说,接口biFunction
具有一个方法rapply(T T,U U)
)。
map.merge
需要bifunction<?超级V,?超级V,?扩展v>
作为第三个参数,其中v
是映射
的值。如果您有一个带有String
值的Map
,则可以使用接受两个String
参数并返回一个String
的任何方法。
String::Concat
满足了这些要求,这就是它可以在Map.Merge
中使用的原因。
它满足这些要求的原因需要解释:
这可以看作是一个具有两个String类型参数(This
,为其调用此方法的实例,以及str
参数)和一个String类型结果的函数。
我查看了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 语句。
这是个模糊的问题。因此,请随时询问任何具体数据。 我们有一个tomcat服务器,运行两个web服务。一个tomcat使用spring构建。90%的任务使用mysql,JSON缓存使用mongo(10%)。另一个web服务是使用grails编写的。这两项服务都是中等大小的代码库(每项约35k行代码) 计算仅在有HTTP请求(无批处理)时发生。每个请求大约有2000个数据库点击率(我知道它非常庞大,我