【发布时间】:2012-06-25 21:43:00
【问题描述】:
我有以下问题:我有一个类,试图使用反射来调用它的一个 OWN 保护方法,但我遇到了一个异常: 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
}
}
【问题讨论】:
-
它可以与
BaseReceiver.class.getDeclaredMethod一起使用吗? -
@KazekageGaara:另一个问题是关于无法以其他方式访问的方法。在这里,他尝试调用自己的方法。
-
那么对不起。我只是觉得它可能有用。
标签: java reflection methods illegalaccessexception