方法引用:lambda表達式中重寫的方法用已有方法代替。java
舉個栗子 有一個函數接口實現ide
Java8new3Demo java8new3Demo=new Java8new3Demo() { @Override public String method1(String id) { return null; } };
下面是lambda表達式函數
Java8new3Demo java8new3Demo2=id -> {return id+"lambda";};
若是我更懶,惟一的抽象方法都不想重寫,正好有個現成的方法和要重寫的同樣,能不能直接拿來呢?這就是方法引用接口
若是我有一個現成的類get
public class Java8new3DemoT { public static String getname(String id){ return id+"Java8new3DemoT"; } public String getname2(String id){ return id+"Java8new3DemoT"; } }
這個類中的方法,參數和返回值和函數接口中要實現的方法都相同,咱們就能夠拿來直接用java8
Java8new3Demo java8new3Demo3=Java8new3DemoT::getname;
前面類名+雙冒號+引用的靜態方法class
若是是非靜態方法就須要先建立實體lambda
Java8new3DemoT java8new3DemoT=new Java8new3DemoT(); Java8new3Demo java8new3Demo4=java8new3DemoT::getname2;