反射获取属性名异常,遍历明明存在,指定属性名获取却报错,求指点。代码如下:
public class Test2 {
private String column1;
private List column2;
public String getColumn1() {
return column1;
}
public void setColumn1(String column1) {
this.column1 = column1;
}
public List<String> getColumn2() {
return column2;
}
public void setColumn2(List<String> column2) {
this.column2 = column2;
}
public static void main(String[] args) {
try {
Class<?> c=Test2.class;
Field[] fields=c.getDeclaredFields();
for(Field f:fields){
System.out.println("遍历: "+f.getName());//遍历所有属性存在
}
Field f1=c.getField("column1");//直接获取报错
System.out.println("直接获取: "+f1.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
控制台输出:
遍历: column1
遍历: column2
java.lang.NoSuchFieldException: column1
at java.lang.Class.getField(Class.java:1520)
at test.Test2.main(Test2.java:30)