我从数据库获取数据并通过类DBUserValues的字段名访问,并希望将结果保存在DBUserValues对象中。总有一个结果。如何使用字符串访问这些静态变量?有更好的方法吗?
public class DBUserValues {
public static String username;
public static String firstname;
}
浏览结果并保存
for (Field field : user.getClass().getDeclaredFields()) {
// Result should get saved in DBUserValues object
// DBUserValues.username = result.getString(field.getName();
// DBUserValues.(field.getName()) = result.getString(field.getName());
}
答案 0 :(得分:0)
您必须创建一个POJO来映射具有私有属性和公共getter和setter的数据库字段:
class DBUserValues {
// private attributes
private String username;
private String firstname;
// public getters and setters
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
}
我如何现在调用这些getter和setter?
field.invoke("set" + field.getName(), result.getString(field.getName()))
不起作用。
您必须创建一个DBUserValues
对象来填充,同时缺少代码,但我不认为您必须遍历user.getClass().getDeclaredFields()
结果:
// get database values
Field[] fields = user.getClass().getDeclaredFields();
// create an object to populate:
DBUserValues user = new DBUserValues();
user.setUserName(fields[0]);
user.serFirstName(fields[1]);
ADD ON:检查this和this,了解如何从user.getClass().getDeclaredFields()
检索正确的信息。