最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Lambda表達(dá)式的方法引用和構(gòu)造器引用實(shí)例分析

 更新時(shí)間:2019年09月30日 09:57:08   作者:cakincqm  
這篇文章主要介紹了Java Lambda表達(dá)式的方法引用和構(gòu)造器引用,結(jié)合實(shí)例形式分析了Lambda表達(dá)式的方法引用和構(gòu)造器引用相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Java Lambda表達(dá)式的方法引用和構(gòu)造器引用。分享給大家供大家參考,具體如下:

一 點(diǎn)睛

如果Lambda表達(dá)式的代碼塊只有一條代碼,還可以在代碼塊中使用方法引用和構(gòu)造器引用,以使得Lambda表達(dá)式更加簡(jiǎn)潔。

種類(lèi)

示例

說(shuō)明

對(duì)應(yīng)的Lambda表達(dá)式

引用類(lèi)方法

類(lèi)名::類(lèi)方法

函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該類(lèi)方法作為參數(shù)。

(a,b,...) -> 類(lèi)名.類(lèi)方法(a,b, ...)

引用特定對(duì)象的實(shí)例方法

特定對(duì)象::實(shí)例方法

函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該方法作為參數(shù)。

(a,b, ...) -> 特定對(duì)象.實(shí)例方法(a,b, ...)

引用某類(lèi)對(duì)象的實(shí)例方法

類(lèi)名::實(shí)例方法

函數(shù)式接口中被實(shí)現(xiàn)方法的第一個(gè)參數(shù)作為調(diào)用者,后面的參數(shù)全部傳給該方法作為參數(shù)。

(a,b, ...) ->a.實(shí)例方法(b, ...)

引用構(gòu)造器

類(lèi)名::new

函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該構(gòu)造器作為參數(shù)。

(a,b, ...) ->new 類(lèi)名(a,b, ...)

二 實(shí)戰(zhàn)

1 代碼

import javax.swing.*;
@FunctionalInterface
interface Converter{
  Integer convert(String from);
}
@FunctionalInterface
interface MyTest
{
  String test(String a , int b , int c);
}
@FunctionalInterface
interface YourTest
{
  JFrame win(String title);
}
public class MethodRefer
{
  public static void main(String[] args)
  {
   // 下面代碼使用Lambda表達(dá)式創(chuàng)建Converter對(duì)象
//  Converter converter1 = from -> Integer.valueOf(from);
   // 方法引用代替Lambda表達(dá)式:引用類(lèi)方法。
   // 函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該類(lèi)方法作為參數(shù)。
   Converter converter1 = Integer::valueOf;
   Integer val = converter1.convert("99");
   System.out.println(val); // 輸出整數(shù)99
   // 下面代碼使用Lambda表達(dá)式創(chuàng)建Converter對(duì)象
//  Converter converter2 = from -> "fkit.org".indexOf(from);
   // 方法引用代替Lambda表達(dá)式:引用特定對(duì)象的實(shí)例方法。
   // 函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該方法作為參數(shù)。
   Converter converter2 = "fkit.org"::indexOf;
   Integer value = converter2.convert("it");
   System.out.println(value); // 輸出2
   // 下面代碼使用Lambda表達(dá)式創(chuàng)建MyTest對(duì)象
//  MyTest mt = (a , b , c) -> a.substring(b , c);
   // 方法引用代替Lambda表達(dá)式:引用某類(lèi)對(duì)象的實(shí)例方法。
   // 函數(shù)式接口中被實(shí)現(xiàn)方法的第一個(gè)參數(shù)作為調(diào)用者,
   // 后面的參數(shù)全部傳給該方法作為參數(shù)。
   MyTest mt = String::substring;
   String str = mt.test("Java I Love you" , 2 , 9);
   System.out.println(str); // 輸出:va I Lo
   // 下面代碼使用Lambda表達(dá)式創(chuàng)建YourTest對(duì)象
//  YourTest yt = (String a) -> new JFrame(a);
   // 構(gòu)造器引用代替Lambda表達(dá)式。
   // 函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該構(gòu)造器作為參數(shù)。
   YourTest yt = JFrame::new;
   JFrame jf = yt.win("我的窗口");
   System.out.println(jf);
  }
}

2 運(yùn)行

99
2
va I Lo
javax.swing.JFrame[frame0,0,0,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=我的窗口,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java中Cookie和Session的那些事兒

    Java中Cookie和Session的那些事兒

    Cookie和Session都是為了保持用戶(hù)的訪(fǎng)問(wèn)狀態(tài),一方面為了方便業(yè)務(wù)實(shí)現(xiàn),另一方面為了簡(jiǎn)化服務(wù)端的程序設(shè)計(jì)。這篇文章主要介紹了java中cookie和session的知識(shí),需要的朋友可以參考下
    2016-09-09
  • java彈幕小游戲1.0版本

    java彈幕小游戲1.0版本

    這篇文章主要為大家詳細(xì)介紹了java彈幕小游戲1.0版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 使用java寫(xiě)的矩陣乘法實(shí)例(Strassen算法)

    使用java寫(xiě)的矩陣乘法實(shí)例(Strassen算法)

    這篇文章主要給大家介紹了關(guān)于如何使用java寫(xiě)的矩陣乘法(Strassen算法)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 在eclipse中修改tomcat的部署路徑操作

    在eclipse中修改tomcat的部署路徑操作

    這篇文章主要介紹了在eclipse中修改tomcat的部署路徑操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Java超詳細(xì)講解多線(xiàn)程中的Process與Thread

    Java超詳細(xì)講解多線(xiàn)程中的Process與Thread

    進(jìn)程process:在一定的環(huán)境下,把靜態(tài)的程序代碼運(yùn)行起來(lái),通過(guò)使用不同的資源,來(lái)完成一定的任務(wù);線(xiàn)程thread:是程序中一個(gè)單一的順序控制流程。在單個(gè)進(jìn)程中同時(shí)運(yùn)行多個(gè)線(xiàn)程完成不同的工作,稱(chēng)為多線(xiàn)程
    2022-05-05
  • JAXB命名空間及前綴_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JAXB命名空間及前綴_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要給大家介紹了關(guān)于JAXB命名空間及前綴的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Java實(shí)現(xiàn)英文句子中的單詞順序逆序輸出的方法

    Java實(shí)現(xiàn)英文句子中的單詞順序逆序輸出的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)英文句子中的單詞順序逆序輸出的方法,涉及java字符串遍歷、判斷、截取、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • SpringCloud之微服務(wù)容錯(cuò)的實(shí)現(xiàn)

    SpringCloud之微服務(wù)容錯(cuò)的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud之微服務(wù)容錯(cuò)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 細(xì)談java同步之JMM(Java Memory Model)

    細(xì)談java同步之JMM(Java Memory Model)

    Java內(nèi)存模型是在硬件內(nèi)存模型上的更高層的抽象,它屏蔽了各種硬件和操作系統(tǒng)訪(fǎng)問(wèn)的差異性,保證了Java程序在各種平臺(tái)下對(duì)內(nèi)存的訪(fǎng)問(wèn)都能達(dá)到一致的效果。下面我們來(lái)一起學(xué)習(xí)下JMM
    2019-05-05
  • 測(cè)量Java對(duì)象所占內(nèi)存大小方式

    測(cè)量Java對(duì)象所占內(nèi)存大小方式

    這篇文章主要介紹了測(cè)量Java對(duì)象所占內(nèi)存大小方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論

万年县| 商河县| 兰西县| 桓台县| 林甸县| 雷山县| 凌海市| 中江县| 淮安市| 怀化市| 临颍县| 泽库县| 湄潭县| 东乡族自治县| 宁陵县| 公主岭市| 商南县| 乌兰浩特市| 洮南市| 海口市| 木里| 建德市| 太和县| 临猗县| 东丰县| 陕西省| 西华县| 汕头市| 孝昌县| 九江县| 陈巴尔虎旗| 芦溪县| 岳池县| 左权县| 卢氏县| 孟村| 循化| 谷城县| 浦城县| 监利县| 安图县|