欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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á)式更加簡潔。

種類

示例

說明

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

引用類方法

類名::類方法

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

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

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

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

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

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

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

類名::實(shí)例方法

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

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

引用構(gòu)造器

類名::new

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

(a,b, ...) ->new 類名(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á)式:引用類方法。
   // 函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該類方法作為參數(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á)式:引用某類對(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)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關(guān)文章

  • springboot如何配置定時(shí)任務(wù)

    springboot如何配置定時(shí)任務(wù)

    這篇文章主要介紹了springboot如何配置定時(shí)任務(wù),幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • spring boot 使用Aop通知打印控制器請(qǐng)求報(bào)文和返回報(bào)文問題

    spring boot 使用Aop通知打印控制器請(qǐng)求報(bào)文和返回報(bào)文問題

    這篇文章主要介紹了spring-boot 使用Aop通知打印控制器請(qǐng)求報(bào)文和返回報(bào)文,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • 三種Java打印PDF文檔的實(shí)例代碼

    三種Java打印PDF文檔的實(shí)例代碼

    這篇文章主要介紹了三種Java 打印PDF文檔的方法,文中代碼非常詳細(xì),供大家學(xué)習(xí)和參考,感興趣的朋友快來了解下
    2020-06-06
  • 詳解Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法

    詳解Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法

    最近在工作遇到的一個(gè),發(fā)現(xiàn)網(wǎng)上的資料較少,所以想著總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法,文中通過完整的示例代碼給大家介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • 關(guān)于Linux服務(wù)器配置java環(huán)境遇到的問題小結(jié)

    關(guān)于Linux服務(wù)器配置java環(huán)境遇到的問題小結(jié)

    這篇文章主要介紹了關(guān)于Linux服務(wù)器配置java環(huán)境遇到的問題小結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java占位符替換五種方式小結(jié)

    java占位符替換五種方式小結(jié)

    我們經(jīng)常會(huì)遇到需要替換字符串中的占位符的情況,本文主要介紹了java占位符替換五種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Java 設(shè)計(jì)模式原則之迪米特法則詳解

    Java 設(shè)計(jì)模式原則之迪米特法則詳解

    這篇文章主要介紹了Java 設(shè)計(jì)模式原則之迪米特法則詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java中map遍歷方式的選擇問題詳解

    Java中map遍歷方式的選擇問題詳解

    這篇文章主要介紹了Java中map遍歷方式的選擇問題的相關(guān)內(nèi)容,小編覺得挺不錯(cuò)的,在則里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • java中枚舉原來還可以這么用

    java中枚舉原來還可以這么用

    這篇文章主要給大家介紹了關(guān)于java枚舉原來還可以這么用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 開放封閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    開放封閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了開放封閉原則,開放-封閉原則是面向?qū)ο笤O(shè)計(jì)的核心所在,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評(píng)論