语法
方法引用使用一对冒号 :: 。方法引用其实就是将形式参数传递给被引用的方法,构造器。
类别
- 静态方法引用 Integer::parseInt
public interface MethodInterFace {
/**
* 字符串转换为int
*/
public int StringtoInt(String i);
}
/**
* 引用类的静态方法
*/
@Test
public void TestStaticClassMethodRefrence(){
MethodInterFace methodInterFace=null;
methodInterFace=Integer::parseInt;
System.err.println(methodInterFace.StringtoInt("3"));
}
- 对象实例方法引用 (对象::方法)
public interface MethodInterFace {
/**
* 字符串转换为int
*/
public int StringtoInt(String i);
}
@Test
public void TestClassInstanceMethod(){
String s="15";
MethodInterFace methodInterFace=null;
methodInterFace=s::indexOf;
methodInterFace.StringtoInt("5");
}
- 实例方法引用 (类名::成员方法)
public interface MethodInterFace {
/**
* 字符串转换为int
*/
public int StringtoInt(String i);
}
/**
* 引用类的实例方法
*/
@Test
public void TestClassMethod(){
int i = ClassMethodString(Integer::parseInt);
System.err.println(i);
}
public int ClassMethodString(MethodInterFace methodInterFace){
return methodInterFace.StringtoInt("35");
}
- 构造方法引用(类名::new)
public interface StudentBuilder {
public Student studentbuilder(String name,int age);
}
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
}
@Test
public void TestClassConstruct(){
StudentBuilder studentBuilder=null;
studentBuilder=Student::new;
}