java8-方法引用

方法引用

方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它们。方法引用可以被看作特定Lambda表达式的一种简单写法。
它的基本思想是,如果一个Lambda表达式的内容是调用一个方法,那么可以直接通过“类名+方法名”的方式来使用。当你需要使用方法引用时,目标引用放在分隔符::前,方法的名称放在后面,不需要括号。

方法引用的分类

方法引用主要有三类。

  • 指向静态方法的方法引用 Integer::parseInt
  • 指向任意类型实例方法的方法引用 String::length
  • 指向现有对象的实例方法的方法引用 this::hashCode
    在这里插入图片描述
实例
  1. 当接口方法的参数和表达式的参数一致,可以使用::,将接口方法的参数传递给::后的函数表达式。如果有多个同名的重载方法,编译器就会尝试从上下文中找出你指的那一个方法。
public interface LamInterface {

	void show(String s);
}

package testclass;

public class Test {
	public static void main(String[] args) throws Exception {
		LamInterface l = System.out::println;
		l.show("www");
	}
}

  1. 可以在方法引用中使用this 参数。例如,this::equals 等同于x -> this.equals(x)。使用super 也是合法的。在一个 lambda 表达式中使用 this 关键字时,是指创建这个 lambda 表达式的方法的 this参数。
public void show() {
	Runnable r= this::hashCode;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值