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

Java Lambda表達式的方法引用和構造器引用實例分析

 更新時間:2019年09月30日 09:57:08   作者:cakincqm  
這篇文章主要介紹了Java Lambda表達式的方法引用和構造器引用,結合實例形式分析了Lambda表達式的方法引用和構造器引用相關原理、用法及操作注意事項,需要的朋友可以參考下

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

一 點睛

如果Lambda表達式的代碼塊只有一條代碼,還可以在代碼塊中使用方法引用和構造器引用,以使得Lambda表達式更加簡潔。

種類

示例

說明

對應的Lambda表達式

引用類方法

類名::類方法

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

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

引用特定對象的實例方法

特定對象::實例方法

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

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

引用某類對象的實例方法

類名::實例方法

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

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

引用構造器

類名::new

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

(a,b, ...) ->new 類名(a,b, ...)

二 實戰(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表達式創(chuàng)建Converter對象
//  Converter converter1 = from -> Integer.valueOf(from);
   // 方法引用代替Lambda表達式:引用類方法。
   // 函數(shù)式接口中被實現(xiàn)方法的全部參數(shù)傳給該類方法作為參數(shù)。
   Converter converter1 = Integer::valueOf;
   Integer val = converter1.convert("99");
   System.out.println(val); // 輸出整數(shù)99
   // 下面代碼使用Lambda表達式創(chuàng)建Converter對象
//  Converter converter2 = from -> "fkit.org".indexOf(from);
   // 方法引用代替Lambda表達式:引用特定對象的實例方法。
   // 函數(shù)式接口中被實現(xiàn)方法的全部參數(shù)傳給該方法作為參數(shù)。
   Converter converter2 = "fkit.org"::indexOf;
   Integer value = converter2.convert("it");
   System.out.println(value); // 輸出2
   // 下面代碼使用Lambda表達式創(chuàng)建MyTest對象
//  MyTest mt = (a , b , c) -> a.substring(b , c);
   // 方法引用代替Lambda表達式:引用某類對象的實例方法。
   // 函數(shù)式接口中被實現(xiàn)方法的第一個參數(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表達式創(chuàng)建YourTest對象
//  YourTest yt = (String a) -> new JFrame(a);
   // 構造器引用代替Lambda表達式。
   // 函數(shù)式接口中被實現(xiàn)方法的全部參數(shù)傳給該構造器作為參數(shù)。
   YourTest yt = JFrame::new;
   JFrame jf = yt.win("我的窗口");
   System.out.println(jf);
  }
}

2 運行

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相關內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • springboot如何配置定時任務

    springboot如何配置定時任務

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

    spring boot 使用Aop通知打印控制器請求報文和返回報文問題

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

    三種Java打印PDF文檔的實例代碼

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

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

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

    關于Linux服務器配置java環(huán)境遇到的問題小結

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

    java占位符替換五種方式小結

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

    Java 設計模式原則之迪米特法則詳解

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

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

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

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

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

    開放封閉原則_動力節(jié)點Java學院整理

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

最新評論