【发布时间】:2019-02-07 20:10:27
【问题描述】:
错误消息:“SchedulableInserter”的类型参数 E 的值不一致:事件、分配
所以基本上我有一个抽象类 Schedulable。 我也有两个类事件(单一发生的事件,如时间戳) 和一个班级作业(基本上是一个事件,但也有一个持续时间) 我有一个 MainActivity,我想在其中将实例插入 SQLiteDB。 我想为 Schedulable 的每个子类使用不同的插入方法 轻松处理它们之间的差异。
//SchedulableInserter.kt
interface SchedulableInserter<E> where E : Schedulable{
fun onInsertSchedulable(item:E)
}
//MainActivity.kt
class MainActivity() : AppCompatActivity(),
NavigationView.OnNavigationItemSelectedListener,
SchedulableInserter<Incident>, SchedulableInserter<Assignment> {
/* ^ ^
| |
Sadly Kotlin says:
Type parameter E of 'SchedulableInserter' has inconsistent values:
Incident, Assignment
A Supertype apperars twice
*/
}
我的意思是,如果我将 SchedulerInserter 绑定到 Schedulable,我可以在方法中进行区分,但我希望不必这样做。
【问题讨论】:
-
看起来像泛型和类型擦除的问题。你不能有两种不同的
SchedulableInserter<>超类型,因为它们相互冲突,即使一个是<Incident>而另一个是<Assignment>
标签: android generics kotlin constraints