方法参考的优点
减少样板
无用参数删除: 删除 count 和 incr 等参数。
示例:
map.merge(key, 1, Integer::sum);
有效使用方法参考
-
Lambda 中的有用文档: 在某些情况下,Lambda 中的参数名称可以提供有用的文档。
-
将 Lambda 转换为方法: 如果 lambda 太复杂,请将代码提取到单独的方法中并使用对该方法的引用。
IDE 和方法参考
-
IDE 建议: IDE 通常建议用方法引用替换 lambda。
-
接受建议:一般来说,接受建议,但要根据具体情况进行评估。
例外和注意事项
-
更简洁的 Lambda 表达式: 有时 lambda 表达式比方法引用更简洁。
- 类示例:
-
方法参考: GoshThisClassNameIsHumongous::action
-
Lambda: () ->动作()
-
恒等函数: Function.identity() 与 Function.identity() 对比x-> x
方法的参考类型
-
静态:Integer::parseInt (lambda: str -> Integer.parseInt(str))
-
有限: Instant.now()::isAfter (lambda: t -> Instant.now().isAfter(t))
-
无限: String::toLowerCase (lambda: str -> str.toLowerCase())
-
类构造函数: TreeMap::new (lambda: () -> new TreeMap)
-
数组构造函数: int[]::new (lambda: len -> new int[len])
结论
方法引用的偏好: 当方法引用比 lambda 更短、更清晰时使用方法引用。
Lambda 的使用: 如果 lambda 更简洁或提供更好的文档,则更喜欢 lambda。
以上是Item 更喜欢对方法的引用而不是 lambda的详细内容。更多信息请关注PHP中文网其他相关文章!