专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java8特性之方法引用(在java中要引用对象的属性和方法,需要怎么实现?)

temp10 2025-04-09 20:27:04 java教程 11 ℃ 0 评论
  • 方法引用简介

如果在Lambda表达式的具体逻辑处理和某个方法的处理逻辑相同,则可以直接将方法名称指代具体的处理逻辑,从而使得整个Lambda表达式更加的简洁,逻辑更加清晰。

比如: System.out.println

Java8特性之方法引用(在java中要引用对象的属性和方法,需要怎么实现?)

Arrays.asList(1,2,3)

.forEach(

(a) -> System.out.println(a)

);

Arrays.asList(1,2,3)

.forEach(

System.out :: println

);

通过 System.out 的实例方法名来代替整个处理逻辑

  • 方法引用分类

静态方法引用

格式:Class :: static Method

实例方法引用

格式:instance :: method

构造器方法引用

格式:Class :: new

对象方法引用

格式:instance :: method(args)

  • 方法引用示例

静态方法引用:

Arrays.asList(1,5,3,2,10,8)
     .sort(
     Integer :: compare
    );

通过调用Integer 类的静态比较方法,实现对于List的排序

实例方法引用:

 Arrays.asList(1,2,3)
      .forEach(
       System.out :: println
 );

System.out 是PrintStream的实例,而println 是PrintStream的方法。

构造器方法引用:

Supplier 
          supplier = MethodRef :: new;

Supplier 是一个函数式接口,代表对象结果的提供者角色,内部提供了get()方法,返回具体的对象。

对象方法引用:

BiPredicate
     bp =
       (a, b) -> a.equals(b);

BiPredicate 
       bp1 = 
         String :: equals;

注意:对象方法引用的第一个参数是方法的调用者,第二个参数是方法的参数。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表