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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

傳遞一個(gè)帶有l(wèi)ambda表達(dá)式的函數(shù)來(lái)創(chuàng)建一個(gè)泛型函數(shù)

傳遞一個(gè)帶有l(wèi)ambda表達(dá)式的函數(shù)來(lái)創(chuàng)建一個(gè)泛型函數(shù)

當(dāng)年話(huà)下 2023-08-16 17:31:19
我正在使用谷歌的 AutoValue 生成一些配置,但在生成配置之前,我想確保條目已清理并將默認(rèn)值添加到列表中。AutoValue 部分如下所示:    @AutoValue.Builder    public abstract static class Builder {        public abstract Builder primaryName(List<String> value);        public abstract Optional<List<String>> primaryName();        public abstract Builder primaryTitle(List<String> value);        abstract Optional<List<String>> primaryTitle();        abstract Config autoBuild();        public Config build() {            normalizePriorities();            EntitySourcePrioritizationConfig config = autoBuild();            return config;        }我有以下重復(fù)的代碼normalizePriorities():        private void normalizePriorities()        {            normalizeName();            normalizeTitle();        }        private void normalizeName() {            if (!primaryName().isPresent()) {                primaryName(defaultPrimaryNames());            } else {                List<String> providedConfigEntries = primaryName().get();                List<String> cleanConfig = sanitizeConfig(providedConfigEntries);                primaryName(cleanConfig);            }        }        private void normalizeTitle() {            if (!primaryTitle().isPresent()) {                primaryTitle(defaultPrimaryTitles());            } else {                List<String> providedConfigEntries = primaryTitle().get();                List<String> cleanConfig = sanitizeConfig(providedConfigEntries);                primaryTitle(cleanConfig);            }        }我想知道如何使用 lambda 表達(dá)式來(lái)減少代碼的重復(fù)數(shù)據(jù)刪除。默認(rèn)名稱(chēng)和標(biāo)題只是一個(gè)字符串列表,如下所示,可以作為參數(shù)傳遞:    public static ImmutableList<String> defaultPrimaryTitles() {        return ImmutableList.of(                "BBA",                "TNN");    }我嘗試像這樣泛化該函數(shù):normalize(primaryAlias(), defaultPrimaryTitles());private void normalize(Optional<List<String>> configList, List<String> defaultConfig){...            }不幸的是,我不太確定如何泛化并傳遞public abstract Builder primaryTitle(List<String> value)到該方法中。
查看完整描述

1 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

您可以傳遞一個(gè)接受字符串列表并調(diào)用構(gòu)建器方法的消費(fèi)者,例如:

創(chuàng)建消費(fèi)者并將其傳遞給normalize方法:

Consumer<List<String>>?builderConsumer?=?(x)?->?Builder.primaryName(x);
normalize(primaryAlias(),?defaultPrimaryTitles(),?builderConsumer);

以及標(biāo)準(zhǔn)化方法:

private?void?normalize(ImmutableList<String>?configList,?List<String>?defaultConfig,?Consumer<List<String>>?builderConsumer)?{
????List<String>?cleanConfig?=?new?ArrayList<>();
????????//?...
????builderConsumer.accept(cleanConfig);
}


查看完整回答
反對(duì) 回復(fù) 2023-08-16
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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