A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陆强强 中级黑马   /  2012-7-15 06:08  /  2253 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陆强强 于 2012-7-15 19:26 编辑

存在一个JavaBean,它可能包含若干个int类型属性,属性名未知,现在我要把所有int的属性值修改为100,怎么做
class JavaBean {
               
        private  String string;
        private  Integer integer;
        private  int x;
        private  int  y;
        
        public JavaBean() {
               
        }
        public String getString() {
                return string;
        }
        public void setString(String string) {
                this.string = string;
        }
        public Integer getInteger() {
                return integer;
        }
        public void setInteger(Integer integer) {
                this.integer = integer;
        }
        public boolean getX() {
                return x;
        }
        public void setX(int x) {
                this.x = x;
        }
        public double getY() {
                return Y;
        }
        public void setY(int y) {
                this.y = y;
        }

4 个回复

倒序浏览
数据库改呀
回复 使用道具 举报
public static void main(String[] args)throws Exception
{
  JavaBean javaBean=new JavaBean();//创建你的JavaBean对象
  BeanInfo beaninfo=Introspector.getBeanInfo(javaBean.getClass());//使用Introspector类的静态方法getBeanInfo(.class)返回一个BeanInfo对象.
  PropertyDescriptor [] pds=beaninfo.getPropertyDescriptors();//获取属性表述器数组
  for(PropertyDescriptor pd:pds) //迭代属性表述器
  {
   
   if (pd.getPropertyType().equals(int.class))//根据你需要的条件,将指定属性筛选出来
   {
   
    Method m=pd.getWriteMethod(); //下面就是赋值动作
    m.invoke(javaBean,100);
    break;
   }
  }
  System.out.println(javaBean.getX());//打印出100
  
}

点评

给力  发表于 2012-7-15 09:06

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1 很给力!

查看全部评分

回复 使用道具 举报
周恺 发表于 2012-7-15 07:09
public static void main(String[] args)throws Exception
{
  JavaBean javaBean=new JavaBean();//创建 ...

再问一下,Integer和int可以一起改么。比如一个int x;
还有一个Integer y;
回复 使用道具 举报
陆强强 发表于 2012-7-15 09:21
再问一下,Integer和int可以一起改么。比如一个int x;
还有一个Integer y;

.int和Integer没有什么交集,所以,有个笨办法
for(PropertyDescriptor pd:pds) //迭代属性表述器
          {
          
           if (pd.getPropertyType().equals(int.class)||
                           pd.getPropertyType().equals(Integer.class))//根据你需要的条件,将指定属性筛选出来
           {
            
            Method m=pd.getWriteMethod(); //下面就是赋值动作
            m.invoke(javaBean,100);
            
           }
          }
判断条件改下就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马