Я конвертирую некоторый код Java в Kotlin, и я столкнулся с кодом, который по сути работает следующим образом:
interface Animal {}
class Dog : Animal {}
interface Leash<in T: Animal> {
fun attachToCollarOf(animal: T)
}
class DogLeash : Leash<Dog> {
override fun attachToCollarOf(animal: Dog) {
TODO("Not yet implemented")
}
}
val foo: Leash<Animal> = DogLeash
При попытке назначить foo
с помощью учитывая тип DogLeash()
, я получаю следующую ошибку: error: type mismatch: inferred type is DogLeash but Leash<Animal> was expected
. Есть ли комбинация in
, out
или with
, которая позволит мне выполнить задание в последней строке?