当前位置: java基础教程 > 14-Stream流与方法引用 > 阅读正文

方法引用

2021.2.23.   515 次   991字

方法引用是 java 8 的新特性

方法引用,能简化 lambda 表达式,

表示引用别的方法,来作为方法的实现,参数与返回值与接口相同

1.方法引用的几种形式
  • 类名及其静态方法,class::method
  • 构造器引用,objectName::new
  • 对象及其方法, object::method
  • 父类方法,super::method
  • 本对象方法,this::method
2.代码实例

1.静态方法引用,使用已有的静态方法处理lambda

import java.util.Arrays;
public class Demo {
	public static void main(String[] args) {
		Arrays.asList("a", "c", "b").forEach(s -> System.out.println(s));
		Arrays.asList("a", "c", "b").forEach(System.out::println);
	}
}

2.构造器引用,相当于 new class(可以是数组,如 int[]::new)

import java.util.function.Supplier;
public class Demo {
	public static void main(String[] args) {
		Supplier<List<String>> supplier1 = () -> new  ArrayList<String>();
		Supplier<List<String>> supplier2 = ArrayList<String>::new;
	}
}

3.对象的方法引用,使用已存在对象的方法处理

import java.util.Arrays;

public class Demo
{
    public static void main(String[] args)
    {
    	Demo object = new Demo();
        Arrays.asList("a", "c", "b").forEach(s -> object.println(s));
        Arrays.asList("a", "c", "b").forEach(object::println);
    }
    
    public void println(String s)
    {
        System.out.println(s);
    }
}

4.父类方法调用,谁调用此方法,就是谁的super,super::method

5.本对象的方法调用,谁调用此方法,this 就是谁,this::method

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群