Merov
Merov

Reputation: 1028

Generics in Kotlin and Java with nested classes

Can someone explain, please, why i can't do the code below from Java in Kotlin?

Java:

public static <T extends ViewGroup> void doSomething(T viewGroup) {
    T.LayoutParams params = viewGroup.getLayoutParams();
}

Kotlin:

fun <T : ViewGroup> doSomething(viewGroup: T) {
    val params : T.LayoutParams = viewGroup.layoutParams
}

or

fun <T : ViewGroup> T.doSomething() {
    val params : T.LayoutParams = this.layoutParams
}

Kotlin just doesn't see LayoutParams.

Upvotes: 1

Views: 557

Answers (1)

muminers
muminers

Reputation: 1210

Have you tried?

fun <T : ViewGroup> doSomething(viewGroup: T) {
    val params = viewGroup.layoutParams
}

EDIT: Well I tried it and you can't do that:

val params : T.LayoutParams = viewGroup.layoutParams

But you can do that:

val params: T = viewGroup
val par = viewGroup.layoutParams

Upvotes: 3

Related Questions