-2

親のクラスのメソッドではなく、サブクラスでオーバーライドされたメソッドのみを取得する必要があります。

例えば:

class Foo { 
    public void doStuff(){

    }

    public void doStuff2(){

    }
}

class Bar extends Foo{
    public void doStuff(){

    }
    public void subDoStuff(){

    }
}

doStuff()と のみを反射させたいsubDoStuff()。現在、私はコードを使用しています

for (Method m : mClass.getDeclaredMethods()) {
                m.getName();
        }

ただし、すべてのメソッドがリストされています。

解決しました!コードは正しいです。見つけるのに 1 時間もかかったブレース、ばかげたバグを忘れてしまいました。

if (m.getName().equals("onBackPressed"))  {//<- 
            System.out.println("ethod: " + m.getName());
            return true;
            }//<----
4

1 に答える 1

0

試してみてください

class.getMethod("myMethod").getDeclaringClass();
于 2013-06-10T13:29:09.743 に答える