Котлин: 1.2.71
андорид студия: 3.2.1
Gradle плагин: 3.2.0
Gradle: 4,6
Я получаю ошибку "случайного переопределения" (пример кода ниже), если вы обнаружите какое-либо неправильное использование, скажите, пожалуйста, будьте благодарны.
abstract class ResourceLiveData<T: Resource<*>> : LiveData<T>(){
override fun observe(owner: LifecycleOwner, observer: Observer<T>) {
do something here ...
super.observe(owner, observer)
}
}
демонстрационный код:
// Inherited platform declarations clash: The following declarations have the same JVM signature (observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V):
// fun observe(owner: LifecycleOwner, observer: Observer<Resource<String>>): Unit defined in com.demo.live.StringResourceLiveData
// fun observe(p0: LifecycleOwner, p1: Observer<in Resource<String>!>): Unit defined in com.demo.live.StringResourceLiveData
class StringResourceLiveData : ResourceLiveData<Resource<String>>()
UPDATE
ResourceLiveData
находится в стороннем lib, а зависимость lib android.arch.lifecycle
.
Мое приложение мигрирует на androidx, поэтому я добавляю android.useAndroidX=true
и android.enableJetifier=true
в gradle.properties.
После синхронизации ResourceLiveData.class
import изменился на androidx, но проблема здесь в том, что метод переопределения ResourceLiveData
не содержит контравариант in
, но androidx.lifecycle.LiveData
нужен