DALDEI
08/15/2020, 3:45 PMAndrea Giuliano
08/15/2020, 3:46 PMDALDEI
08/15/2020, 3:48 PMAndrea Giuliano
08/15/2020, 3:48 PMDALDEI
08/15/2020, 3:50 PMDALDEI
08/15/2020, 3:51 PMAndrea Giuliano
08/15/2020, 3:51 PMreified fun View()...
DALDEI
08/15/2020, 4:11 PMabstract class X<T:Any>() {
val x : Int = 1
abstract fun getView() : KClass<T>
}
inline fun <reified T:Any> X<T>.view() = T::class
class Y : X<StatementJob>() {
override fun getView() = view()
}
DALDEI
08/15/2020, 4:11 PMstreetsofboston
08/15/2020, 4:19 PMclass MyClass private constructor(...) {
companion object {
inline operator fun <reified T> invoke(...): MyClass {
}
}
}
Then you can construct it still like this
val mc = MyClass(…)
, because it is the same as val mc = MyClass.invoke(…)
DALDEI
08/16/2020, 12:38 PMDALDEI
08/16/2020, 12:39 PM