如何在Java中使用反射正确设置对象属性?

如何在Java中使用反射正确设置对象属性?,java,reflection,Java,Reflection,数据库结果集示例 fclass,geometry,scenario ""elementary_school"","MULTIPOINT(303400.907447057 9044592.97070337)",66 ""elementary_school"","MULTIPOINT(302777.056751395 9044333.43169871)",66 ""elementary_school"","MULTIPOINT(304182.88271353 9042435.93276122)",6

数据库结果集示例

fclass,geometry,scenario
""elementary_school"","MULTIPOINT(303400.907447057 9044592.97070337)",66
""elementary_school"","MULTIPOINT(302777.056751395 9044333.43169871)",66
""elementary_school"","MULTIPOINT(304182.88271353 9042435.93276122)",66
""elementary_school"","MULTIPOINT(304592.928219703 9041564.59729198)",66
""elementary_school"","MULTIPOINT(311385.417245523 9052785.71100888)",66
""worship"","MULTIPOINT(307397.04764638 9039421.31774996)",66
""worship"","MULTIPOINT(304384.660908793 9047145.34109501)",66
""worship"","MULTIPOINT(304518.616783947 9039859.48619132)",66
""worship"","MULTIPOINT(304689.11878157 9041491.61685193)",66
""worship"","MULTIPOINT(304711.539434326 9047763.53595371)",66
""worship"","MULTIPOINT(303420.353637529 9048419.36252138)",66
使用反射访问的类

公共级便利设施{
公众身份证;
公共整数情景;
公共字符串类;
公共字符串位置;
公共字符串缓冲区;
公共表格信息[]设施信息;
}
使用反射

private PostStatus getprofessionals(字符串层RUP、字符串层、字符串[]表格、字符串[]表格、字符串场景ID){
PostStatus PostStatus=新的PostStatus();
字符串值=”;
for(int i=0;i'”+表[i]+“”为“+表[i];
}
如果(i
当我的代码使用code
integer scen=(integer)data.getInt(tableUP[i])设置对象的integer属性值时,它失败了;f、 set(o,scen),当我检查结果时,其他值已正确分配,但字段场景的值仍为null

我确信数据库结果集中的值是存在的,并且我尝试设置一个静态整数值
66
,它只显示带有
0
值的字段


由于我对Java相当陌生,我希望您能帮助我找出我做错了什么?

尝试创建一个-您展示的代码中没有定义大多数变量。同意@assylias。我还要提醒的是,随着表模式的发展,这种方法可能会变得非常脆弱和容易出错。考虑使用Spring JDBC和它的接口(并且根本不使用反射)。@米格尔什么是代码> TabLUP ?当你说“我的代码失败了”时,是否意味着你得到了一个异常?例外情况是什么?等等。我更新了代码并添加了整个函数。我同意这是我的第一种方法,我将在未来的迭代中实现更好的数据库管理。失败意味着我没有得到期望的结果,因为没有分配方案值。@Miguel您是否使用调试器一步一步地运行代码并检查变量以找到问题?例如,我怀疑
if(!tableUP[I].equals(“场景”)| |!tableUP[I].equals(“便利设施id”)
始终为真,并且只运行if/else语句的第一个分支。尝试创建一个-显示的代码中没有定义大多数变量。同意@assylias。