我的程序中出现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上运行
答案 0 :(得分:0)
public static void setField(Object object, String fieldName, Object fieldValue)
{
try
{
Field field = object.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(object, fieldValue);
}
catch(Exception exception)
{
// Log error
}
}
请尝试上面的代码,它应该可以工作(我没有编译它,检查语法错误,如果有的话) 你是怎么得到Field实例的?
可能存在一些问题