java - Java 8 中的实例方法引用类型有什么区别?

标签 java java-8 method-reference

所以 Java 8 引入了方法引用和 docs describe the four types .

我的问题是这两种实例类型有什么区别?

  1. Reference to an instance method of a particular object.
  2. Reference to an instance method of an arbitrary object of a particular type.

两者都引用引用,但有什么显着不同?是用来解决它们的类型推断不同吗? (在他们的示例中)一个是闭包而另一个是 lambda 是否重要?是否与方法的参数数量有关?

最佳答案

  1. myString::charAt 将接受一个 int 并返回一个 char,并且可以用于任何工作的 lambda方法。它本质上转换为 index -> myString.charAt(index)

  2. String::length 将采用 String 并返回 int。它本质上转换为 string -> string.length().

  3. String::charAt 将转换为 (string, index) -> string.charAt(index)

关于java - Java 8 中的实例方法引用类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22516331/

相关文章:

Java 已成功安装,但 Eclipse 无法启动

java - 获取 Java TimeZone 的缩写?

java-8 - 如果是 varargs 参数,@Nullable 注释引用哪里?

Java 8 双函数引用?

java - 使用方法引用来检查 boolean 值匹配而不是 lambda

java - Java 中的 Concat()

java - Arrays.asList() 问题

java - 期待堆栈图框架 - Java 8

android-studio - 如何将 Java 方法引用代码转换为 Kotlin

java - 如何从 Google 数据存储区获取最新实体?