Norbi
abstract class BaseClass<BaseType> { fun f1(p: BaseType) {} } sealed interface IBase<T1, T2> { class I1<T1>: IBase<T1, Unit> } class InheritedClass<T1, T2>: BaseClass<IBase<T1, T2>>() { fun f2() { // Compile error: // Type mismatch. // Required: IBase<T1, T2> // Found: IBase.I1<T1> f1(IBase.I1<T1>()) } }
Roukanken
IBase.I1<T>
IBase<T1, Unit>
IBase<T1, T2>
Unit
T2
val test = InheritedClass<String, Int>() test.f2()
Int
A modern programming language that makes developers happier.