list.stream().collect(Collectors.toMap(CategoryBasicDTO::getId, Function.identity())
Function.identity()
是 Java 中 Function
接口的静态方法,它返回一个执行恒等转换的函数。在这个特定的上下文中,它用作 Collectors.toMap
方法的值映射器。
简而言之,Function.identity()
等同于一个函数,它接受一个参数并返回该参数。在这个例子中,它保持对象本身不变,作为 toMap
方法中每个元素的值。
在 Collectors.toMap
中,第一个参数是键映射器,第二个参数是值映射器。对于键映射器,你使用 CategoryBasicDTO::getId
,提取对象的 id
属性作为键。对于值映射器,你使用 Function.identity()
,这等同于 (x) -> x
,它保持对象本身作为值。
这种做法在将对象列表转换为 Map
时非常方便,因为它允许你将对象本身用作值,而不需要进行额外的转换。