【发布时间】:2019-12-26 19:40:18
【问题描述】:
在下面的代码中,您可以看到针对具有不同对象的多个映射发生的常见 lambda 操作。我想知道是否可以在调用时定义一个执行相同操作的通用函数。
Map<Int, Object1> map1.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getDisplayName()))
Map<Int, Object2> map2.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getDisplayName()))
Map<Int, Object3> map2.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getDisplayName()))
在上面,object1、object2和object3属于不同的类型(类)。
假设所有对象 obj1、obj2、obj3 都具有共同的属性 displayName。
【问题讨论】:
-
Object1/2/3是否共享任何界面?如果不是,他们getValue()的类型是一样的吗? -
两者都没有。那就是问题所在。如果 getValue() 相同,这是否意味着对象属于同一类?我想要一个接受具有不同类对象的映射并执行上述操作的方法。
-
我误解并认为
getValue是Object1上的方法,而不是Entry上的方法。
标签: function lambda functional-programming