see, I have a Java class:
public final class JavaReceiveSingle {
public static void useSingle(Single single) {
single.doSth();
}
public static void useSingle2(SingleInterface singleInterface) {
singleInterface.doSth();
}
}
a Java interface:
public interface SingleInterface {
void doSth();
}
a kotlin interface:
interface Single {
fun doSth()
}
Now I can use lambda in a kotlin class like:
JavaReceiveSingle.useSingle2({})
But if I want to do the same thing to kotlin interface:
JavaReceiveSingle.useSingle({})
IDE will show error :Required: Single! Found: ()->Unit
And If I specify Single like:
JavaReceiveSingle.useSingle(Single{})
Still error:Interface Single does not have constructs!
Though the following code works:
JavaReceiveSingle.useSingle(object :Single{
override fun aa() {}
})
But why I can't use lambda for a kotlin interface?