Skip to content

使用java反射设置Field的值.传入的参数是Class对象.报错 #3

@deanjo

Description

@deanjo

大神还好,Resolver类中使用反射设置字段的值的时候代码如下:
field.set(Class clazz,Field field,Object value;传入的是Class对象.在运行的是报错.传入参数异常
这里是不是应该是field.set(Object obj,Field field,Object value).
在jdk的反射源码这里报错UnsafeFieldAccessorImpl
protected void ensureObj(Object o) {
// NOTE: will throw NullPointerException, as specified, if o is null
if (!field.getDeclaringClass().isAssignableFrom(o.getClass())) {
throwSetIllegalArgumentException(o);
}
}
我理解的是.因为传入的Class对象.如果一个类有new出了多个对象.只传入Class 反射不知道到底修改谁的
所以需要传入具体修改那个对象.
请大神指教 ~~~`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions