第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

身份方法有什么作用,通用單例java

身份方法有什么作用,通用單例java

瀟湘沐 2022-07-27 16:32:01
在閱讀有效的 java 第 5 章第 27 條時它談?wù)撏ㄓ脝卫J剑含F(xiàn)在假設(shè)您要提供一個標(biāo)識函數(shù)。每次需要時都創(chuàng)建一個新的會很浪費,因為它是無狀態(tài)的。如果泛型被具體化,則每種類型都需要一個標(biāo)識函數(shù),但由于它們已被刪除,因此您只需要一個泛型單例。這是它的外觀:public class GenericSingleton<T> {    private static UnaryFunction<Object> IDENTIFY_FUNCTION = new UnaryFunction<Object>() {        @Override        public Object apply(Object args) {            return args;        }    };    @SuppressWarnings("unchecked")    public static <T> UnaryFunction<T> identityFunction() {        return (UnaryFunction<T>) IDENTITY_FUNCTION;    }    public static void main(String[] args) {        String[] strings = {"jute", "hemp", "nylon"};        UnaryFunction<String> sameString = identityFunction();        for (String s : strings) {            System.out.println(sameString.apply(s));        }        Number[] numbers = {1, 2.0, 3L};        UnaryFunction<Number> sameNumber = identityFunction();        for (Number n : numbers) {            System.out.println(sameNumber.apply(n));        }    }}我無法理解apply方法實際上做了什么!這就像獲取一個對象并返回它自己。為什么?一些無用的樣本?請有人告訴我用例嗎?
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

一個用例是Collectors.toMap().

假設(shè)您有一個由唯一鍵標(biāo)識的項目列表,并且您希望Map從該唯一鍵到對象本身。

Collectors.toMap()需要兩個功能:

  • 一種從對象中提取密鑰

  • 另一個從對象中提取值

由于值應(yīng)該是對象本身,因此您需要一個接受對象并返回相同對象的函數(shù) - 這就是您的標(biāo)識函數(shù)。


查看完整回答
反對 回復(fù) 2022-07-27
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號