package heima.方法引用;
public class PrintableDemo {public static void main(String[] args) {//在主方法中調(diào)用usePrintable方法
// usePrintable((String s )->{// System.out.println(s);
// });
usePrintable(s->System.out.println(s));
//方法引用符::: (可推導(dǎo)的就是可省略的)
usePrintable(System.out::println);
}
private static void usePrintable(Printable p){p.printString("愛生活愛Java");
}
}
方法引用符
它的使用,同上一個案例
package heima.方法引用.Lambda表達(dá)式支持的方法引用;
public class ConverterDemo {public static void main(String[] args) {//在主方法中調(diào)用useConverter方法
// useConverter((String s)->{// return Integer.parseInt(s);
// });
// useConverter(s->Integer.parseInt(s));
//引用類方法
useConverter(Integer::parseInt);
//Lambda表達(dá)式被類方法替代時,它的形式參數(shù)全部傳遞給靜態(tài)方法作為參數(shù)
}
private static void useConverter(Converter c){int num = c.convert("666");
System.out.println(num);
}
}
引用對象的實例方法package heima.方法引用.引用類的實例方法;
public interface Printer {void printUpperCase(String s);
}
package heima.方法引用.引用類的實例方法;
public class PrintString {//把字符串參數(shù)變成大寫的數(shù)據(jù),然后在控制臺輸出
public void printUpper(String s){String result = s.toUpperCase();
System.out.println(result);
}
}
package heima.方法引用.引用類的實例方法;
public class PrinterDemo {public static void main(String[] args) {//在主方法中調(diào)用usePrinter方法
// usePrinter((String s)->{String result = s.toUpperCase();
System.out.println(result);
// System.out.println(s.toUpperCase());
// });
usePrinter(s->System.out.println(s.toUpperCase()));
//引用對象的實例方法
PrintString ps = new PrintString();
usePrinter(ps::printUpper);
}
private static void usePrinter(Printer p){p.printUpperCase("HelloWorld");
}
}
輸出:
package heima.方法引用.引用類的實例方法;
public class MyStringDemo {public static void main(String[] args) {//在主方法中調(diào)用useMyString方法
useMyString((s,x,y)->s.substring(x,y));
//引用類的實例方法
useMyString(String::substring);
}
private static void useMyString(MyString my){String s = my.mySubString("HelloWorld",2,5);
System.out.println(s);
}
}
package heima.方法引用.引用類的實例方法;
public interface MyString {String mySubString(String s,int x,int y);
}
引用構(gòu)造器package heima.方法引用.引用構(gòu)造器;
public class Student {private String name;
private int age;
public Student() {}
public Student(String name, int age) {this.name = name;
this.age = age;
}
public String getName() {return name;
}
public void setName(String name) {this.name = name;
}
public int getAge() {return age;
}
public void setAge(int age) {this.age = age;
}
}
package heima.方法引用.引用構(gòu)造器;
public interface StudentBuilder {Student build(String name,int age);
}
package heima.方法引用.引用構(gòu)造器;
public class StudentDemo {public static void main(String[] args) {//在主方法中調(diào)用useStudentBulder方法
useStudentBulder(((name, age) ->new Student(name,age)));
//引用構(gòu)造器
useStudentBulder(Student::new);
}
private static void useStudentBulder(StudentBuilder sb){Student s = sb.build("小林",30);
System.out.println(s.getName()+','+s.getAge());
}
}
輸出:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁標(biāo)題:【java】方法引用-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article24/cchdje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、網(wǎng)站營銷、企業(yè)網(wǎng)站制作、做網(wǎng)站、微信公眾號、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)