Is this possible?

The only solutions I found usually consider a method as overriden if Class B is assignable from Class A and if Method A has the same signature as Method B. But it's not covering every cases!

For instance, I want to handle this case :

interface Foo<T> {
    void doStuff(T arg);    
}

class FooImpl implements Foo<String> {
    public void doStuff(String args) {
        //Is overriden!  
    }
}

I also want to check that Method B is actually visible to Method A (package scope etc.).

Have you ever experienced a reliable method to determine if a method is overriden?

Thank you

Edit
Report