can not access a member of class java.util.HashMap$HashIterator with modifiers "public final"
这个错误什么意思?Reflection.ensureMemberAccess(caller, clazz, obj, modifiers);这是提示的源码?
由于没办法看见你完整的异常提醒,但根据can not access a member of class java.util.HashMap$HashIterator with modifiers "public final"
可以看出:出现这种异常,就是因为该类不是公共的。访问位于其他包中的非公共类型的成员是不合法的。
郑彬 发表于 2012-8-21 17:00
public final这个不是公共的吗?难道被public final修饰的方法不能被反射访问吗? ...
从异常可以看到:can not access a member of class java.util.HashMap$HashIterator with modifiers "public final"
说明运行时的被反射类其实是 java.util.HashMap$HashIterator ,(也可以看出HashSet是通过HashMap来实现的),查看jdk的源码,可以看到:
private abstract class HashIterator<E> implements Iterator<E> {
。。。
}
这个是私有内部类,不允许外边访问。所以报了这个非法访问异常