2 回答

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
您的方法對我來說似乎有效,但我盡量避免直接實(shí)施Function
。主要原因是:命名.
我可以理解,如果一個(gè)類有一個(gè)有意義的名稱(例如InOutMapFunction
),您可能不會(huì)覺得該方法也需要一個(gè)有意義的名稱。不過,我更喜歡的名字InOutMapper.mapInToOut
來InOutMapFunction.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
}
}

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以通過“查找用法設(shè)置”限制搜索范圍(Windows 上的默認(rèn)設(shè)置:CTRL+ALT+SHFT+F7)
這些設(shè)置適用于通過 ALT+F7 以及鼠標(biāo)滾輪單擊的搜索。也許將其限制為您當(dāng)前的模塊可以解決問題?
添加回答
舉報(bào)