java8新特性-方法引用
阿新 • • 發佈:2021-07-01
方法引用:當要傳遞給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; }