我在我的程序中遇到了 IllegalAccessException 问题
这是我的代码
private static void setdata(Field field, Object dto, Object value) throws IllegalArgumentException, IllegalAccessException {
boolean accessible = field.isAccessible();
if (!accessible)
field.setAccessible(true);
if (value instanceof java.lang.String) {
if (value != null) {
value = String.valueOf(value).trim();
}
}
field.set(dto, value);
if (accessible)
field.setAccessible(false);
}
为了防止“IllegalAccessException”,我添加了检查逻辑。
boolean accessible = field.isAccessible();'
if (!accessible) field.setAccessible(true);
但有时在我的程序中会发生 IllegalAccessException。
线上引发的异常 - 'field.set(dto, value);'
例外情况如下
java.lang.IllegalAccessException: Class com.comm.util.FileReadUtils can not access a member of class com.dto.myDto with modifiers "private"
起初,我认为“静态”可能是个问题。
但据我所知,静态方法在调用时确实会创建自己的堆栈帧。
所以我一无所获。
请让我知道我做了什么愚蠢的事情~
我的程序在 Spring 3.x 和 java 1.6 上运行