Field类概述
Field类表示类的属性,通过反射可以访问和修改字段值。
获取Field
Field publicField = clazz.getField("fieldName");
Field declaredField = clazz.getDeclaredField("fieldName");
Field[] fields = clazz.getFields();
Field[] declaredFields = clazz.getDeclaredFields();
访问字段值
field.setAccessible(true);
Object value = field.get(obj);
field.set(obj, newValue);
Field常用方法
| 方法 | 说明 |
|---|---|
| getName() | 获取字段名 |
| getType() | 获取字段类型 |
| get(obj) | 获取值 |
| set(obj, val) | 设置值 |
| setAccessible(true) | 访问私有字段 |
小结
- getField()获取public字段
- getDeclaredField()获取任意字段
- setAccessible(true)访问私有字段
- 反射可以突破封装