我的意图是将此类用于不同的动作。
例如:HeadHelper<ActionOnlineStatus>(ActionOnlineStatus::class.java)
为了只有一个功能。但是现在出现了类型不匹配错误,我很好奇如何解决它,因为一切对我来说都很好。
Type mismatch.
Required: T
Found: ActionOnlineStatus!
我已经尝试过ActionOnlineStatus(connection.responseCode == HttpURLConnection.HTTP_OK) as T
,但是它是Unchecked cast: ActionOnlineStatus! to T
,我不想使用抑制注释。
我的代码:
class HeadHelper<T : Action>(_action: Class<T>) : AsyncTask<Consumer<T>, Unit, Unit>() {
private val action = _action
override fun doInBackground(vararg params: Consumer<T>) {
when (action) {
ActionOnlineStatus::class.java -> {
params[0].accept(action.cast(ActionOnlineStatus(true)))
//Type mismatch.
//Required: T
//Found: ActionOnlineStatus!
}
}
}
}
interface Action
class ActionOnlineStatus(_online: Boolean) : Action {
val online = _online
}