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

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

IntelliJ 和內(nèi)置 Java 函數(shù)接口

IntelliJ 和內(nèi)置 Java 函數(shù)接口

泛舟湖上清波郎朗 2022-01-06 17:44:08
我的 Spring 組件實(shí)現(xiàn)了 java.util.function.Function。這背后的想法是強(qiáng)制使用帶有小封裝函數(shù)的函數(shù)式風(fēng)格。@Componentpublic class MyFunction implements Function<In, Out> {    public Out apply(In in) { .... }}// example usage@RestControllerpublic class MyApi {    private MyFunction f;    public void foo() {        someList.stream()            .map(f)            . // whatever    }}IntelliJ 2018.1 出現(xiàn)兩個(gè)問題:“查找用法”提供了查找基本方法用法的選項(xiàng)。如果我不小心點(diǎn)擊了“是”,IntelliJ 會(huì)發(fā)現(xiàn)無數(shù)的用法并減慢速度,直到它幾乎凍結(jié)。好吧,我絕對應(yīng)該在這里選擇“否”,但這仍然是一個(gè)小問題。在帶有“方法引用”(如 IntelliJ 建議)的 Stream(例如過濾器)中使用該函數(shù)甚至更成問題。使用“查找用法”并選擇“否”將不會(huì)顯示我正在尋找的“真實(shí)”用法。這使得很難在代碼中導(dǎo)航。這引出了我的問題:使用內(nèi)置函數(shù)接口是一個(gè)好習(xí)慣還是我應(yīng)該編寫自己的函數(shù)而不將其聲明為 FunctionalInterface?您是否將上述問題視為 IntelliJ 錯(cuò)誤?有你知道的解決方法嗎?
查看完整描述

2 回答

?
MM們

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

您的方法對我來說似乎有效,但我盡量避免直接實(shí)施Function。主要原因是:命名.

我可以理解,如果一個(gè)類有一個(gè)有意義的名稱(例如InOutMapFunction),您可能不會(huì)覺得該方法也需要一個(gè)有意義的名稱。不過,我更喜歡的名字InOutMapper.mapInToOutInOutMapFunction.apply。

另外,如果你能想到的不止一個(gè)InOutMapper,那就讓它成為一個(gè)接口,讓組件來實(shí)現(xiàn)它。

有些人可能認(rèn)為,如果它們與現(xiàn)有的接口“對應(yīng)”,那么創(chuàng)建自己的功能接口是不值得的,但我?guī)缀鯊牟缓蠡?,尤其是在?shí)際用例中,這會(huì)極大地影響可讀性,例如比較:

  • SomeParticularTypeContextFinder, 和

  • Function<SomeParticularType, SomeParticularTypeContext>.

這是我如何實(shí)施您的示例:

@Component

public class PlainInOutMapper implements InOutMapper {

    @Override

    public Out mapInToOut(In in) { .... }

}


@FunctionalInterface

interface InOutMapper {

    Out mapInToOut(In in);

}


// example usage

@RestController

public class MyApi {

    private List<In> someList;


    private InOutMapper mapper;

    public void foo() {

        someList.stream()

                .map(mapper::mapInToOut)

                . // whatever

    }

}


查看完整回答
反對 回復(fù) 2022-01-06
?
慕仙森

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

您可以通過“查找用法設(shè)置”限制搜索范圍(Windows 上的默認(rèn)設(shè)置:CTRL+ALT+SHFT+F7)

http://img1.sycdn.imooc.com//61d6ba1800010bb305950349.jpg

這些設(shè)置適用于通過 ALT+F7 以及鼠標(biāo)滾輪單擊的搜索。也許將其限制為您當(dāng)前的模塊可以解決問題?


查看完整回答
反對 回復(fù) 2022-01-06
  • 2 回答
  • 0 關(guān)注
  • 169 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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