java8新特性---方法引用

5 篇文章 0 订阅
5 篇文章 0 订阅

Java8新特性—Lambda表达式

个人理解:方法引用承接自Lambda表达式,若Lambda表达式中的内容已经有方法实现了,那么就可以使用方法引用,Lambda表达式中只有一个方法的时候就可以使用方法引用.

下面介绍方法引用的三种格式
  • 格式一  对象::实例方法名
注意:Lambda体中的方法的参数列表和返回值要与所实现函数式接口的参数列表和返回值保持一致
@Test
   public void Test1() {
   	//举例1
   	Consumer<String> con = (x) -> System.out.println(x);//使用Lambda表达式
   	con.accept("Hello");
   	Consumer<String> con1 = System.out::println;		//使用方法引用
   	con1.accept("World");
   	//举例2
   	Student student = new Student("Moti",10,"男");
   	Supplier<String> stuName = () -> student.getName();	//使用Lambda表达式
   	System.out.println(stuName.get());
   	Supplier<String> stuName1 = student::getName;		//使用方法引用
   	System.out.println(stuName1.get());
   }

输出结果如下:
在这里插入图片描述
可见使用Lambda表达式的写法和使用方法引用的写法的效果是一样的!使用方法引用会更加简化代码

  • 格式二  类名::静态方法名
注意:Lambda体中的方法的参数列表和返回值要与所实现函数式接口的参数列表和返回值保持一致
@Test
	public void Test2() {
		Comparator<Integer> com = (x,y) -> Integer.compare(x, y);//使用Lambda表达式
		Comparator<Integer> com1 = Integer::compare;			 //使用方法引用
	}

两者的使用效果同样也是一样的.

  • 格式三  类名::实例方法名
注意:
		Lambda体中的方法的参数列表和返回值要与所实现函数式接口的参数列表和返回值保持一致
		第一个参数是lambda体中方法的调用者,第二个参数是方法的参数时,可以使用	类名::实例方法名的方法引用
@Test
	@Test
	public void Test3() {
		BiPredicate<String, String> bp = (x,y) -> x.equals(y);	 //使用Lambda表达式
		BiPredicate<String, String> bp1 = String::equals;		 //使用方法引用
	}

两者的使用效果同样也是一样的.

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值