Given the following three kotlin classes:
abstract class UseCase<T> {
fun execute(action: Action<T>) {
}
}
class ConcreteUseCase : UseCase<List<String>>()
class Action<T>
I am unable to compile following lines in java code:
ConcreteUseCase s = new ConcreteUseCase();
s.execute(new Action<List<String>>());//<<<<<<< compilation error
Error says:
SomeClass<java.util.List<? extends Type>> in Class cannot be applied to SomeClass<java.util.List<Type>>
I am still new to kotlin and this might be something very small but I can't seem to figure it out. I will appreciate any help.
Change your ConcreteUseCase
as following:
class ConcreteUseCase : UseCase<List<@JvmSuppressWildcards String>>()
For more information visit this link