国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

方法引用

2019-11-08 02:19:47
字體:
來源:轉載
供稿:網友

方法引用

方法引用就是直接訪問類中的實例或者構造器或者方法,他提供了一種調用方法而不直接執行的方式,方法引用是Lambda表達式的簡寫,在不需要使用Lambda表達式的時候一幫不需要使用方法引用。==當Lambda表達式中只是執行一個方法調用時,不用Lambda表達式,直接通過方法引用的形式可讀性更高一些。==

方法引用分的分類

靜態方法引用實例方法引用構造方法引用
靜態方法引用實例
//沒有實現的接口public interface StringFunc { String func(String n);}//string倒轉的方法public class MyStringOps { //靜態方法: 反轉字符串 public static String strReverse(String str) { String result = ""; for (int i = str.length() - 1; i >= 0; i--) { result += str.charAt(i); } return result; }}//使用public class MethodRefDemo1 { public static String stringOp(StringFunc sf, String s) { return sf.func(s); } public static void main(String[] args) { String inStr = "lambda add power to java"; String outStr = stringOp(MyStringOps::strReverse, inStr); //使用Lambda表達式:String outStr=stringOp((x)->MyStringOps.strReverse(x),inStr); System.out.注釋:這里的MyStringOps::strReverse方法相當于接口StringFunc 的func方法的實現。并且整個調用返回StringFunc

實例方法引用

實例方法和上面差不多,但是不能直接調用MyStringOps而是先將他實例化

MyStringOps my=new MyStringOps(); String outStr = stringOp(my::strReverse, inStr);
構造方法引用實例
public interface MyFun { MyClass fun(int id);}public class MyClass { private int id; public MyClass(){}; public MyClass(int id) { super(); this.id = id; } public int get(){ return id; }}public class MyFunDome { public static void main(String[] args) { //使用Lambda表達式:MyFun my=(x)->{return new MyClass(x);}; MyFun my=MyClass::new; MyClass c=my.fun(100); System.out.println(c.get()); }}

注解:MyFun my=MyClass::new;這句話MyClass的有參構造器是MyFun的fun方法的實現。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴安盟| 普洱| 巴中市| 涿鹿县| 新沂市| 雅安市| 栾川县| 平利县| 文成县| 双桥区| 绵阳市| 武鸣县| 上栗县| 龙门县| 祁连县| 澜沧| 门头沟区| 辽宁省| 荥阳市| 铜鼓县| 永年县| 宾川县| 连州市| 重庆市| 高陵县| 进贤县| 巴青县| 宝鸡市| 遵化市| 阜新| 长沙县| 嫩江县| 平舆县| 利川市| 锡林郭勒盟| 盐边县| 田东县| 龙口市| 卢氏县| 车险| 德钦县|