我的Java代码中出现以下错误:
java.lang.IllegalAccessException: Class org.apache.commons.digester.ObjectCreateRule can not access a member of class Response with modifiers ""
Run Code Online (Sandbox Code Playgroud)
可能是因为课程响应不是公共课吗?如果是这样,我怎样才能使它可访问并将类Response保存在与主类相同的文件中?
谢谢
更新,代码:http://www.smipple.net/snippet/aneuryzma/on :% 20is%20related% 20to%20public%20/% 20private%20attribute%20for%20classes%20%3F
是的,正如IllegalAccessException 文档所说。
您可以通过反射绕过访问修饰符。例如,要访问私有字段,使用Class.getDeclaredField(String)获取特定的Field(也适用于私有字段 - 使用普通getField只能获取公共成员),然后设置Field.setAccessible(true). 现在可以像公开一样使用该字段。
您还可以使用JNI绕过访问修饰符。它根本不关心访问修饰符。还有一种方法是使用诸如ASM 之类的工具生成自定义字节码。
| 归档时间: |
|
| 查看次数: |
19086 次 |
| 最近记录: |