byte b = new byte[2048];
创建一个字节数组,再文件读取流中进行临时缓存,开辟空间之后,之后分批次进行流最后的传递完全。
Class<?> clazz = Class.forName("cn.liangqinghai.reflect.Beans1");
Beans1 bean = (Beans1) clazz.newInstance();
//获取单个私有属性
Field field = bean.getClass().getDeclaredField("id");
field.setAccessible(true);
String id = (String)field.get(bean);
//给某个私有属性设置值
for (Field field : fs) {
// 要设置属性可达,不然会抛出IllegalAccessException异常
field.setAccessible(true);
// 设置属性值,set(Object obj, Object value) obj - 应该修改其字段的对象 value - 正被修改的 obj 的字段的新值(参考api)
field.set(bean, "Liang");
}
综上所述看到反射的开启需要对象的进行设置可见,才能进行字段的操作,否则不可以。常用来操作父类私有属性。
上面两个本没有关系,可是这种细节的知识如果不深刻理解的话,很容易会忘记。
人也是一样,对于基本,要明白了什么是基本
网友评论