ฉันมีคำถามเกี่ยวกับการใช้Function.identity()
วิธีการ
ลองนึกภาพโค้ดต่อไปนี้:
Arrays.asList("a", "b", "c")
.stream()
.map(Function.identity()) // <- This,
.map(str -> str) // <- is the same as this.
.collect(Collectors.toMap(
Function.identity(), // <-- And this,
str -> str)); // <-- is the same as this.
มีเหตุผลใดบ้างที่คุณควรใช้Function.identity()
แทนstr->str
(หรือกลับกัน) ฉันคิดว่าตัวเลือกที่สองสามารถอ่านได้มากขึ้น (แน่นอนว่าเป็นเรื่องของรสนิยม) แต่มีเหตุผล "ของจริง" ที่ว่าทำไมเราถึงเลือกที่ดีกว่า
t -> t
เพียงเพราะมันสั้นกระชับ