国产探花免费观看_亚洲丰满少妇自慰呻吟_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方法的實現。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石家庄市| 资源县| 泾川县| 内乡县| 武隆县| 虹口区| 新昌县| 深泽县| 大足县| 易门县| 溧阳市| 南丰县| 临颍县| 苍溪县| 衡阳市| 滨州市| 陕西省| 柳江县| 闽侯县| 金平| 虞城县| 山丹县| 进贤县| 张北县| 五华县| 淮安市| 红原县| 墨脱县| 鄂温| 双辽市| 临海市| 铜鼓县| 芦溪县| 宁蒗| 项城市| 南平市| 咸丰县| 沐川县| 贵港市| 横峰县| 方山县|