Java Lambda表达式中双冒号::如何正确使用?

更新于
2026-10-11 12:00:52
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计756个文字,预计阅读时间需要4分钟。

Java Lambda表达式中双冒号::如何正确使用?

双冒号运算符在Java中代表方法引用,其格式为:类名::方法名。这种格式中,方法名后面没有括号,因为这样表示的是方法引用,而非实际的方法调用。之所以不需要括号,是因为这样的格式子表达式表示的是一个方法引用,而不是一个实际执行的操作,因此不会执行方法内部的逻辑。

双冒号运算就是Java中的[方法引用],[方法引用]的格式是

类名::方法名

注意是方法名哦,后面没有括号“()”哒。为啥不要括号,因为这样的是式子并不代表一定会调用这个方法。这种式子一般是用作Lambda表达式,Lambda有所谓懒加载嘛,不要括号就是说,看情况调用方法。

例如

表达式:

person -> person.getAge();

可以替换成

Person::getAge

表达式

() -> new HashMap<>();

可以替换成

HashMap::new

这种[方法引用]或者说[双冒号运算]对应的参数类型是Function<T,R> T表示传入类型,R表示返回类型。

阅读全文
标签:用法说明

本文共计756个文字,预计阅读时间需要4分钟。

Java Lambda表达式中双冒号::如何正确使用?

双冒号运算符在Java中代表方法引用,其格式为:类名::方法名。这种格式中,方法名后面没有括号,因为这样表示的是方法引用,而非实际的方法调用。之所以不需要括号,是因为这样的格式子表达式表示的是一个方法引用,而不是一个实际执行的操作,因此不会执行方法内部的逻辑。

双冒号运算就是Java中的[方法引用],[方法引用]的格式是

类名::方法名

注意是方法名哦,后面没有括号“()”哒。为啥不要括号,因为这样的是式子并不代表一定会调用这个方法。这种式子一般是用作Lambda表达式,Lambda有所谓懒加载嘛,不要括号就是说,看情况调用方法。

例如

表达式:

person -> person.getAge();

可以替换成

Person::getAge

表达式

() -> new HashMap<>();

可以替换成

HashMap::new

这种[方法引用]或者说[双冒号运算]对应的参数类型是Function<T,R> T表示传入类型,R表示返回类型。

阅读全文
标签:用法说明