方法引用
我们先定义一个接口 (@FunctionalInterface 函数式接口:接口中只定义一个方法的接口称之为函数是接口)
@FunctionalInterface
public interface InterfaceLamdaFunction3 {
void print(Integer t);
}
lambda表达式实现该接口
public class TestMain {
@Test
public void a() {
InterfaceLamdaFunction3 interfaceLamdaFunction3 = (x) -> System.out.println(x);
}
public static void print(Integer t){
System.out.println(t);
}
}
方法引用实现
public class TestMain {
@Test
public void a() {
InterfaceLamdaFunction3 interfaceLamdaFunction3 = TestMain::print;
}
public static void print(Integer t){
System.out.println(t);
}
}
方法引用实现
InterfaceLamdaFunction3 interfaceLamdaFunction3 = TestMain::print;
这行代码是我们 引用了 TestMain中 print 实现了 InterfaceLamdaFunction3接口中的print ;
方法引用要求 引用的方法 要和接口中的方法参数返回值相同。
方法引用
public class TestMain {
@Test
public void a() {
//静态引用
InterfaceLamdaFunction3 interfaceLamdaFunction3 = TestMain::print;
}
@Test
public void b() {
//实例对象引用
TestMain t=new TestMain();
InterfaceLamdaFunction3 interfaceLamdaFunction3 = t::print2;
}
@Test
public void c() {
//构造方法引用
Supplier<TestMain> supp=TestMain::new;
}
public static void print(Integer t){
System.out.println(t);
}
public void print2(Integer t){
System.out.println(t);
}
}