【郑州校区】自定义BeanUtils的赋值和获取方法实现.
1.1.1 功能分析定义MyBeanUtils工具类, 实现与BeanUtils相同的功能 public static void setProperty(Object bean,String name,Object value) // 设置任意对象的, 任意属性, 为任意的值 public static String getProperty(Object bean,String name) // 获取任意对象的任意属性 public static void populate(Object bean,Map map) // 修改任意对象中的属性, 为传入Map集合中的键和值 Ps: 下个知识点 1.1.2 实例代码[AppleScript] 纯文本查看 复制代码 package com.itheima_03;
import java.lang.reflect.Field;
public class MyBeanUtils {
private MyBeanUtils() {}
//public static void setProperty(Object bean,String name,Object value)
public static void setProperty(Object bean,String name,Object value) throws ReflectiveOperationException {
//根据JavaBean对象获取对应的字节码对象
Class clazz = bean.getClass();
//根据字节码对象获取对应的Field对象
Field f = clazz.getDeclaredField(name);
//设置权限,让虚拟机不进行访问的检查
f.setAccessible(true);
//赋值
f.set(bean, value);
}
//public static String getProperty(Object bean,String name)
public static String getProperty(Object bean,String name) throws ReflectiveOperationException {
Class clazz = bean.getClass();
Field f = clazz.getDeclaredField(name);
f.setAccessible(true);
Object obj = f.get(bean);
return obj.toString();
}
} 传智播客·黑马程序员郑州校区地址 河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
|