Java函數(shù)式接口Supplier接口實例詳解

這篇文章主要介紹了Java函數(shù)式接口Supplier接口實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),朝陽縣企業(yè)網(wǎng)站建設(shè),朝陽縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,朝陽縣網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,朝陽縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

JDK提供了大量常用的函數(shù)式接口以豐富Lambda的典型使用場景,它們主要在 java.util.function 包中被提供。 下面是最簡單的Supplier接口及使用示例。

Supplier接口概述

// Supplier接口源碼


@FunctionalInterface
public interface Supplier<T> {

  /**
   * Gets a result.
   *
   * @return a result
   */
  T get();
}

java.util.function.Supplier<T> 接口僅包含一個無參的方法: T get() 。用來獲取一個泛型參數(shù)指定類型的對象數(shù)據(jù)。由于這是一個函數(shù)式接口,這也就意味著對應的Lambda表達式需要“對外提供”一個符合泛型類型的對象數(shù)據(jù)。如:

import java.util.function.Supplier;

public class Demo01Supplier {
  public static void main(String[] args) {
    String msgA = "Hello ";
    String msgB = "World ";
    System.out.println(
        getString(
            () -> msgA + msgB
        )
    );
  }

  private static String getString(Supplier<String> stringSupplier) {
    return stringSupplier.get();
  }
}

控制臺輸出:

Hello World

練習:求數(shù)組元素最大值

使用 Supplier 接口作為方法參數(shù)類型,通過Lambda表達式求出int數(shù)組中的最大值。接口的泛型使用 java.lang.Integer 類。

import java.util.function.Supplier;

public class DemoNumberMax {
  public static void main(String[] args) {
    int[] numbers = {100, 200, 300, 400, 500, -600, -700, -800, -900, -1000};
    int numberMax = arrayMax(
        () -> {
          int max = numbers[0];
          for (int number : numbers) {
            if (max < number) {
              max = number;
            }
          }
          return max;
        }
    );
    System.out.println("數(shù)組中的最大值為:" + numberMax);
  }

  /**
   * 獲取一個泛型參數(shù)指定類型的對象數(shù)據(jù)
   * @param integerSupplier 方法的參數(shù)為Supplier,泛型使用Integer
   * @return 指定類型的對象數(shù)據(jù)
   */
  public static Integer arrayMax(Supplier<Integer> integerSupplier) {
    return integerSupplier.get();
  }
}

控制臺輸出:

數(shù)組中的最大值為:500

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)站欄目:Java函數(shù)式接口Supplier接口實例詳解
文章起源:http://bm7419.com/article32/pcoepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)、小程序開發(fā)電子商務、網(wǎng)站收錄

廣告

聲明:本網(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)

成都網(wǎng)站建設(shè)公司