黑马程序员技术交流社区
标题:
我的javabean
[打印本页]
作者:
画饼
时间:
2013-6-13 18:28
标题:
我的javabean
各位大神好,下面这个代码是我写的那个对javabean进行处理的方法!
只要你告诉我,你要处理的对象跟变量还有值,就可以处理,我就可以帮你设置值,或者返回值,
请教大神,用我这个方法,加入我要处理的变量是name,但是我没有在原类里面弄set跟get方法,下面这个代码能处理么??还有内省,有劳大神再简单的给我说说
public static Object Getbeanzhi(Object Classname,String FieldName){
PropertyDescriptor Pd;
Object Obj =null;
try {
Pd = new PropertyDescriptor(FieldName, Classname.getClass());
Method method =Pd.getReadMethod();
Obj = method.invoke(Classname);
} catch (Exception e) {
System.out.println("对象名或者属性名出错");
}
return Obj;
}
public static void SetBeanzhi(Object Clazz,String FieldName,Object zhi){
PropertyDescriptor Pd;
try {
Pd = new PropertyDescriptor(FieldName, Clazz.getClass());
Method method =Pd.getWriteMethod();
method.invoke(Clazz, zhi);
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("对象名或者属性名出错");
}
作者:
Super_Class
时间:
2013-6-13 18:32
IntroSpector 内省
IntrosPector 是用来操作JavaBean类的;
所谓的javabean类其实是一个特殊的java类含有get和set方法的类。
三种方法:
1、使用PropertyDescriptor 属性描述符
PropertyDescriptor pd = newPropertyDescriptor(String propertyName,Class BeanClass);
getX()
Method getMethod =pd.getReadMethod();
set(类型 对象);
Method setMethod =pd.getWriteMethod();
2、使用Introspector 内省
BeanInfo beanInfo =Introspector.getBeanInfo(字节码比如:ReflectPoint.class);
再得到所有的属性描述符
PropertyDescriptor [] pds =beanInfo.getPropertyDescriptors();
然后可以进行迭代获得每个字段的值(使用get方法或使用set方法修改)
3、直接使用BeanUtils类(静态方法)
BeanUtils.setProperty(,,);
BeanUtils.getProperty();
作者:
孙百鑫
时间:
2013-6-14 05:02
楼主.如果问题解决的话请及时将问题改成已解决哦~{:soso_e100:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2