本帖最后由 杨玲 于 2013-2-17 21:56 编辑
- //获得我的bean类的字节码,并用它创建一个对象
- Class clazz = MyJavaBean.class;
- Object obj = clazz.newInstance();
- //得到这个类的bean信息.
- BeanInfo info = Introspector.getBeanInfo(clazz);
- //获得属性描述符数组
- PropertyDescriptor[] pds = info.getPropertyDescriptors();
- //下面就是分别对属性描述符的的不同类型赋一个初值,然后打印.
- for(PropertyDescriptor pd : pds)
- {
- //问题是在这下面调用方法的时候会出现IllegalArgumentException异常
-
- Class type = pd.getPropertyType();
- if (Integer.class.equals(type))
- {
- pd.getWriteMethod().invoke(obj, 100);
- }
- if(Double.class.equals(type));
- {
- pd.getWriteMethod().invoke(obj, 0.01d);
- }
- if(String.class.equals(type));
- {
- pd.getWriteMethod().invoke(obj, "www.itheima.com");
- }
- if(Boolean.class.equals(type))
- {
- pd.getWriteMethod().invoke(obj, true);
- }
- }
- System.out.println(obj);
复制代码 帮我分析分析,这是哪里的问题呢,for循环中的if语句里面的:pd.getWriteMethod().invoke方法调用都会报错. |
|