java8新特性-方法引用
方法引用:当要传递给Lambda体的操作,已经有了实现方法,可以使用方法引用。
方法引用与lambda表达式结合使用,可以进一步简化代码。
1)实例方法引用:特定对象的实例方法
2)对象方法引用:特定类型的任意对象的实例方法
3)静态方法引用
4)构造方法引用
实例方法引用 对象::实例方法
interface A{
String say();
}
public class Test {
public static void main(String[] args) {
Apple apple = new Apple(23,"zhsan");
A a=()->apple.getName();
System.out.println(a.say());
A a1=apple::getName;
System.out.println(a1.say());
}
}
静态方法引用
public class Test { public static void main(String[] args) { Comparator<Integer> com =(x,y)->Integer.compare(x,y); System.out.println( com.compare(23,45)); Comparator<Integer> comparator =Integer::compare; System.out.println(comparator.compare(23,45)); }
对象方法引用:
public class Test {
public static void main(String[] args) {
//BiPredicate 接受参数,返回boolean
BiPredicate<String,String> b=(x,y)->x.equals(y);
System.out.println(b.test("2fdfg","43"));
BiPredicate<String,String> b2=String::equals;
System.out.println(b2.test("2fdfg","43"));
}
}
构造方法引用:
interface A{ public Object fun(); } public class Test { public static void main(String[] args) { A a=()->new Apple(); A a1=Apple::new; }
浙公网安备 33010602011771号