安卓 Java Kotlin泛型将类getter作为参数传递到函数中
我正在做一些关于安卓 DiffUtil的事情,我想让它变得通用。我想在创建类A时传递getter函数(itemGetter),但在构造函数中声明itemGetter的类型时传递。我不知道怎么申报。()->;V是不正确的。因为 我不能做类似的事情。itemGetter() T类是关于一个有itemGetter的类
class T() {
val item = ....
fun itemGetter(): String {
return this.item
}
}
class A<T,V>(var item1 :T , var item2:T ,var itemGetter: ()->V){
fun comparing(item1: T,item2:T): Boolean {
return item1.itemGetter()===item2.itemGetter()
}
}
谢谢
更新特定示例
class DiffCallBackUtil<T>(var oldList: ArrayList<T>, var newList: ArrayList<T> ) : DiffUtil.Callback() {
override fun areItemsTheSame(oldi: Int, newi: Int): Boolean {
return oldList[oldi] === newList[newi]
}
}
因为我们检查的是相同的项目,需要比较名称或id或
因此,我需要将模型T中的getter as函数传递给DiffCallBackUtil。
因此,我可以调用oldList[oldi].getName()===newList[newi].getName()
共 (0) 个答案