У меня есть следующий простой интерфейс
interface A {
fun move(s:Boolean): Int
}
У меня есть следующий класс
class X{
fun draw (x: A): String{
return "A"
}
fun main() {
val temp = A {
s -> 100
}
val a = draw ( { x -> 100} )
}
}
Однако оба temp
и a
не могут быть объявлены. temp
жалуется, и предлагаемое исправление заключается в преобразовании в анонимный объект следующим образом (что отрицает всю цель использования SAM?)
val temp = object : A {
override fun move(s: Boolean): Int {
return 100
}
}
a
жалуется на несоответствие типов. Мой вопрос: почему этот простой SAM не работает? Подпись метода такая же.