lundi 3 décembre 2018

How to know if a method has been defined in an interface

Given the following code:

interface MyInterface {
    fun foo() {
        // body
    }

    fun bar() {
        // body
    }
}

class MyInterfaceImpl: MyInterface {
    override fun bar() {
        // body
    }
}

Using reflection, how to know that bar() has been overridden and foo() hasn't?

Note: java.lang.reflect.Method#getDeclaringClass() always returns MyInterfaceImpl::class.java and java.lang.reflect.Method#isDefault() always returns false. I did not find the solution in KClass.





Aucun commentaire:

Enregistrer un commentaire