????Welcome Huihui's Code World ! !????
接下來看看由輝輝所寫的關(guān)于方法引用的相關(guān)操作吧
目錄
????Welcome Huihui's Code World ! !????
一.是什么
二.為什么要用
三.什么時候用
四.怎么用
常見的引用方式
一.是什么
- ?符號表示: “ ::”
- 是一種引用運算符,它所在的表達式稱為方法引用?
二.為什么要用?
- 1.簡化代碼
- 方法引用可以將復雜的代碼邏輯簡化,讓代碼更加簡潔,達到更高的可讀性和可維護性。代碼變得更加集中,從而減少了重復代碼,更方便管理和修改。
- 2.提高可讀性
- 使用方法引用可以提高代碼的可讀性。當我們使用方法引用時,代碼更加簡潔,更加易于理解,降低了代碼的抽象程度,讓代碼讀起來更像自然語言。這有助于加快代碼的開發(fā)和維護速度。
- 3.方便修改
- 當需要修改某個方法時,如果代碼中使用了方法引用,我們只需修改引用的那個方法即可,而不必修改其它代碼。這樣使得修改更加方便、快捷,不會影響其它邏輯,降低了出錯的風險。
- 4.支持lambda表達式
- 方法引用是使用lambda表達式來表示的。因為lambda表達式是Java 8中引入的新技術(shù),可以實現(xiàn)更加簡單和靈活的代碼編寫。只需要一行代碼,就可以將一個方法作為參數(shù)傳遞給另外一個方法,非常方便。
三.什么時候用
如果lambda表達式所要實現(xiàn)的額方案,已經(jīng)有其他方法存在相同方案,那么則可以使用方法引用
四.怎么用
????????實例:以strem流中的foreach為例
常見的引用方式
接口名 ::方法名
類名::靜態(tài)方法
類名::普通方法
類名::new 調(diào)用的構(gòu)造器?? ? ?? ? ? ? ?
示例:
?文章來源:http://www.zghlxwxcb.cn/news/detail-500050.html
? package com.wh.test; public class Person { private int pid; private String pname; public Person() { // TODO Auto-generated constructor stub } public Person(int pid, String pname) { super(); this.pid = pid; this.pname = pname; } public Person(int pid) { super(); this.pid = pid; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } @Override public String toString() { return "Person [pid=" + pid + ", pname=" + pname + "]"; } public void show() { System.out.println("我是好人????"); } public void show(String address) { System.out.println("我是"+address+"好人????"); } } ?
package com.wh.test; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; /** * 分別使用lambda表達式和方法引用來完成示例 * * @author W * */ public class Demo1 { public static void main(String[] args) { // 無參構(gòu)造 Supplier<Person> p1 = () -> new Person(); Supplier<Person> p2 = Person::new; // 有參構(gòu)造 Function<Integer, Person> p3 = pid -> new Person(pid); Function<Integer, Person> p4 = Person::new; // 類數(shù)組 Function<Integer, String[]> p5 = len -> new String[len]; Function<Integer, String[]> p6 = String[]::new; // 基本類型數(shù)組 Function<Integer, int[]> p7 = len -> new int[len]; Function<Integer, int[]> p8 = int[]::new; // 調(diào)用方法【空參】 Consumer<Person> p9 = p -> p.show(); Consumer<Person> p10 = Person::show; } }
? ? ? 好啦,今天的分享就到這了,希望能夠幫到你呢!?????? ? ? ? ? ? ????文章來源地址http://www.zghlxwxcb.cn/news/detail-500050.html
到了這里,關(guān)于JDK8新特性之方法引用【 ::】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!