我发现在做和java bean相关联的开发中取得各项属性的值很繁琐,所以想用循环自动取得,不知道该如何去做。

解决方案 »

  1.   

    import java.lang.reflect.Field;public class TestBean
    {
    private String name;
    private int age;
    private boolean merrage;
    public int getAge()
    {
    return age;
    }
    public void setAge(int age)
    {
    this.age = age;
    }
    public boolean isMerrage()
    {
    return merrage;
    }
    public void setMerrage(boolean merrage)
    {
    this.merrage = merrage;
    }
    public String getName()
    {
    return name;
    }
    public void setName(String name)
    {
    this.name = name;
    }

    public static void main(String[] args)
    {
    TestBean tb=new TestBean();
    Field[] fs=tb.getClass().getDeclaredFields();
    for(int i=0;i<fs.length;i++)
    System.out.println(fs[i].getName());
    }
    }
      

  2.   

    参考
    http://www.crackj2ee.com/code/ShowArticle.asp?ArticleID=632
      

  3.   

    取到属性的名字后,有getReadMethod方法可以取到属性的值,就是调用属性的get方法。前提是你的class必须符合javaBean的标准
      

  4.   

    使用  org.apache.commons.lang   包   网上有下,或  我的qq群:20053074   向我要。
    使用方法是:import org.apache.commons.lang.builder.ToStringBuilder;
    import org.apache.commons.lang.builder.ToStringStyle;
    /**
     * @author xiaofei.liu
     * @createDate 2006-9-1
     */
    public class Entity implements java.io.Serializable {

    public String toString(){
    String str = ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
    return str.substring(str.indexOf("[")); }

    public String getClassName(){
    String str = this.getClass().getName();
    return str.substring(str.lastIndexOf(".")+1);
    }
    }public class College extends Entity implements java.io.Serializable {    private Integer id ; //学校ID                                               
        private String name ; //学校名字
        private String passw ; //登陆密码
        private String extensionNumber ;//短信长号码

        }
      

  5.   

    import java.beans.IntrospectionException;
    import java.lang.reflect.InvocationTargetException;public class TestBean
    {
    private String name;
    private int age;
    private boolean merrage;
    public int getAge()
    {
    return age;
    }
    public void setAge(int age)
    {
    this.age = age;
    }
    public boolean isMerrage()
    {
    return merrage;
    }
    public void setMerrage(boolean merrage)
    {
    this.merrage = merrage;
    }
    public String getName()
    {
    return name;
    }
    public void setName(String name)
    {
    this.name = name;
    }

    public static void main(String[] args) throws IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
    {
    TestBean tb=new TestBean();
    tb.setName("huangfeihong");
    tb.setAge(70);
    tb.setMerrage(false);
    java.beans.BeanInfo bi=java.beans.Introspector.getBeanInfo(tb.getClass());
    java.beans.PropertyDescriptor[] pds=bi.getPropertyDescriptors();
    for(int i=0;i<pds.length;i++)
    {
    System.out.println(pds[i].getName()+" : "+pds[i].getReadMethod().invoke(tb, new Object[]{}));
    }
    }
    }
      

  6.   

    BeanInfo????没用过
    不过还是要谢谢你imA :)