Java程序员必备!JDK8新特性-法引用的使用(类----方法)

Posted 程序员超时空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序员必备!JDK8新特性-法引用的使用(类----方法)相关的知识,希望对你有一定的参考价值。

/**

  • 方法引用的使用
  • 1.使用情境:当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!
  • 2.方法引用,本质上就是Lambda表达式,而Lambda表达式作为函数式接口的实例。所以
  • 方法引用,也是函数式接口的实例。
    1. 使用格式: 类(或对象) :: 方法名
    1. 具体分为如下的三种情况:
  • 情况1 对象 :: 非静态方法
  • 情况2 类 :: 静态方法
  • 情况3 类 :: 非静态方法
    1. 方法引用使用的要求:要求接口中的抽象方法的形参列表和返回值类型与方法引用的方法的
  • 形参列表和返回值类型相同!(针对于情况1和情况2)

*/
public class MethodRefTest {

// 情况一:对象 :: 实例方法
//Consumer中的void accept(T t)
//PrintStream中的void println(T t)
@Test
public void test1() {
	Consumer<String> con1 = str -> System.out.println(str);
	con1.accept("北京");

	System.out.println("*******************");
	PrintStream ps = System.out;
	Consumer<String> con2 = ps::println;
	con2.accept("beijing");
}

//Supplier中的T get()
//Employee中的String getName()
@Test
public void test2() {
	Employee emp = new Employee(1001,"Tom",23,5600);

	Supplier<String> sup1 = () -> emp.getName();
	System.out.println(sup1.get());

	System.out.println("*******************");
	Supplier<String> sup2 = emp::getName;
	System.out.println(sup2.get());
}

// 情况二:类 :: 静态方法
//Comparator中的int compare(T t1,T t2)
//Integer中的int compare(T t1,T t2)
@Test
public void test3() {
	Comparator<Integer> com1 = (t1,t2) -> Integer.compare(t1,t2);
	System.out.println(com1.compare(12,21));

	System.out.println("*******************");

	Comparator<Integer> com2 = Integer::compare;
	System.out.println(com2.compare(12,3));

}

//Function中的R apply(T t)
//Math中的Long round(Double d)
@Test
public void test4() {
	Function<Double,Long> func = new Function<Double, Long>() {
		@Override
		public Long apply(Double d) {
			return Math.round(d);
		}
	};

	System.out.println("*******************");

	Function<Double,Long> func1 = d -> Math.round(d);
	System.out.println(func1.apply(12.3));

	System.out.println("*******************");

	Function<Double,Long> func2 = Math::round;
	System.out.println(func2.apply(12.6));
}

// 情况三:类 :: 实例方法  (有难度)

总结

在这里,由于面试中mysql问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了,有需要的朋友可以**【转发+关注】后点击这里免费领取!**

里免费领取!](https://gitee.com/vip204888/java-p7)**

[外链图片转存中…(img-bKIWaTwC-1628074426255)]

以上是关于Java程序员必备!JDK8新特性-法引用的使用(类----方法)的主要内容,如果未能解决你的问题,请参考以下文章

JDK8新特性,方法的引用

学习-jdk8 特性

Jdk8新特性之方法引用

JDK8新特性梳理

JDK8新特性2--方法引用

JDK8新特性2--方法引用