доступ к методу запрещен при вызове защищенного метода подкласса Java

У меня следующая проблема: у меня есть класс, который пытается использовать отражение для вызова одного из своих СОБСТВЕННЫХ защищенных методов, и я получаю исключение: java.lang.IllegalAccessException: доступ к методу запрещен

Может ли кто-нибудь пролить свет на это?

Базовый класс:

public abstract class BaseReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // invoke the correct event method:
        Method method;
        try {
            method = this.getClass().getDeclaredMethod("testMethod");
            method.invoke(this);
        } catch (Throwable ex) {
             // ... display exception message
        }
    }

    protected void testMethod() {
    }

}

Производный конкретный класс:

class MyReceiver extends BaseReceiver {
    @Override
    protected void testMethod() {
        // display error message
    }
}
7
задан mchen 13 January 2015 в 10:18
поделиться