【发布时间】:2021-10-01 00:20:29
【问题描述】:
我的项目使用 java spring。 我尝试访问该属性并使用反射将其设置为特定值。
我尝试访问 User 类的 name 属性:
@Data
public class User {
@Id
private String id;
private String name;
private String phone;
private String email;
}
这是我尝试访问名称字段的方式:
User newUser = userRepository.get(id);
User user = accessProp(newUser, User.class, "name", "John");
public <D> D accessProp(Class<D> dest, String fieldName, Object value ){
Field filed = null;
var cls = AdminUser.class;
filed = cls.getField(fieldName);
filed.set(dest, value);
return dest;
}
但是在这一行:
filed = cls.getField(fieldName);
我收到此错误:
java.lang.NoSuchFieldException: name
我的问题是为什么找不到“名称”字段?
【问题讨论】:
-
为什么呢?你知道
@Data做什么吗?你在课堂上已经有一个publicgetter
标签: java spring reflection lombok