问题描述
- JAVA反射獲取屬性名報錯
-
反射获取属性名异常,遍历明明存在,指定属性名获取却报错,求指点。代码如下:
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)
解决方案
http://blog.sina.com.cn/s/blog_3f69372d0100ar4t.html
私有的需要调用 字段.setAccessible(true);
解决方案二:
java反射获取类的属性名和属性值
时间: 2024-12-28 13:28:42