Field[] f=myValueObject.getClass().getDeclaredFields(); 

解决方案 »

  1.   

    impot java.beans.*;BeanDescriptor bf=BeanDescriptor(myValueObject.getClass())
    Enumeration e=bf.attributeNames();
      

  2.   

    import java.lang.reflect.*;
    public class aaa{
    private int abc;
    private double efg;
    private String hij;
    public static void main(String [] args){

     
    aaa bb=new aaa();

    Field[] ss=bb.getClass().getDeclaredFields();
    System.out.println(ss.length);
    System.out.println(ss[0].toString());
    }

    }
      

  3.   

    to: jFresH_MaN(TM) 
    第一种方法很好用,第二种方法无效。
    非常感谢!我提出这个问题是为了解决下面的数据更新问题,还望您赐教!
       我用Struts做项目,有一个页面resourceForm.jsp,用来输入Resource的数据,当用户输入数据后点击“更新”按钮,系统就要执行更新操作。此时,系统要根据用户提交的要更新的Resource的id,从数据库中重新检索当前Id的Resource,然后将用户提交的Resource的信息一个一个的set给从数据库中检索出来的Resource,然后执行update。这种操作,如果Value Object中有大量的属性,操作起来相当锁繁,我想自己写个方法,就实现类似BeanUtisl.copyProperties()一样方便功能。
       您有什么更好的建议吗?请赐教!我的技术群:10371045
      

  4.   

    第二中方法无效可能是因为你的这个类没有完全按照bean的规则
    第一种方法能解决问题就可以了看到你的需求我就笑了,呵呵
    struts使用了commons的开源工具
    BeanUtils,包是commons-beanutils.jarBeanUtils一共有四个package: 
    org.apache.commons.beanutils 
    org.apache.commons.beanutils.converters 
    org.apache.commons.beanutils.locale 
    org.apache.commons.beanutils.locale.converters 有一个类就是BeanUtils
    里面已经写好了你需要的功能
    呵呵
      

  5.   

    to: jFresH_MaN(TM) 
    谢谢指教!
    今天搞弄一天了,思路也准备好了,你的第一种方法解决了我的问题,正准备写程序呢!
    猛然间看到你说“BeanUtils类能实现我的功能”,今天一直再看commons-beanutils.jar的文档和源程序,没有发现怎样使用BeanUtils类来解决我的问题,能否详细指导一下,最好能实例一下,谢谢!非常感谢!有些底层的通用的东西,自己写非常麻烦,性能也不稳定,不如直接使用这些非常成熟的开源工具。
      

  6.   

    你用google或者baidu输入
    BeanUtil搜索,会有很多文章讲这个的。。