ursus
10/09/2019, 7:26 PMRuckus
10/09/2019, 8:04 PMFoo
has to have access to its generic types.ursus
10/09/2019, 8:44 PMRuckus
10/09/2019, 8:48 PMursus
10/09/2019, 8:49 PMclass FooFragment : BaseFragment<FooViewMode> {
override fun onCreateViewModel() {
return FooViewModel()
}
}
class BaseFragment<T> {
protected lateinit var viewModel: T
override fun onCreateView(view: View) { <-- framework
viewModel = onCreateViewModel()
}
protected abstract fun onCreateViewModel() : T
}
Ruckus
10/09/2019, 8:53 PMFooFragment.onCreateViewModel()
ursus
10/09/2019, 8:54 PMRuckus
10/09/2019, 8:55 PMursus
10/09/2019, 8:56 PMRuckus
10/09/2019, 8:58 PMursus
10/09/2019, 9:01 PMRuckus
10/09/2019, 9:03 PMursus
10/09/2019, 9:05 PMclass Bar : Foo<Quax>()
abstract class Foo<T>
internal class Quax
error is public sublcass exposes internal supertype argument
public class Rah extends Meh<Ohe> {
}
class Ohe {
}
abstract public class Meh<T> {
}