【发布时间】:2018-10-02 06:54:42
【问题描述】:
我有两个不同类型的列表 list1 和 list2 。我有一个对列表执行相同操作的方法。
如果我使用的是 Any 类型的列表,我将使用 lambdas,而我无法以 (it.prop1) 的形式访问该属性。
是否有任何解决方案可以避免 lambdas 出现这个问题?
val list1: List<Student> = ..
val list2: List<Teacher> = ..
list1.filter {
school.contains(it.prop1) }
.forEach {
total += it.prop2.toLong()
}
list2.filter {
school.contains(it.prop1) }
.forEach {
total += it.prop2.toLong()
}
谢谢。
【问题讨论】:
-
Student和Teacher是否具有公开prop1和prop2的公共接口? -
不,它们没有实现通用接口
-
那么你可以添加一个接口并使用相同的代码处理
list1和list2
标签: kotlin functional-programming