1、上面的两个类是做什么用的?
2、下面这段代码是啥意思啊:1.public static Object filtrate(Object object) throws Exception {
2.  Class newClass = object.getClass();
3.  Field[] field = newClass.getDeclaredFields();4.  Object obj = newClass.newInstance();5.  for (int i = 0; i < field.length; i++) {
6.    String methodPrefix = field[i].getName().toString().substring(0, 1).toUpperCase();
7.    String methodSuffix = field[i].getName().toString().substring(1);
8.    Class[] argList = new Class[1];
9.    Method methodGet = newClass.getMethod("get" + methodPrefix + methodSuffix, null);
10.   Method methodSet;
      ……
    }
  ……
  }不明白阿?望指教……

解决方案 »

  1.   

    Method 代表类里的方法
    Field 代表类里的变量
    Class 代表类在运行时的一个映射.看这段代码像是在写一个自动生成 bean 的代码, 自动生成setter getter方法.
      

  2.   

    /**
    *filtrate函数以一个Object对象做为参数,在函数体内部
    *对该Object采用反射机制,在运行态下,来得到该Object
    *所定义的字段、以及函数等信息
    */
    1.public static Object filtrate(Object object) throws Exception {
    2.  Class newClass = object.getClass();  //得到对象所对应的Class信息
    3.  Field[] field = newClass.getDeclaredFields(); //获取该类中所定义的字段信息(字段名)4.  Object obj = newClass.newInstance();  //创建一个该Class所对应的实例即Object5.  for (int i = 0; i < field.length; i++) {
    6.    String methodPrefix = field[i].getName().toString().substring(0, 1).toUpperCase(); //获取字段名的第一个字符
    7.    String methodSuffix = field[i].getName().toString().substring(1);  //获取字段名除第一个字符外的其他所有字符
    8.    Class[] argList = new Class[1];
    9.    Method methodGet = newClass.getMethod("get" + methodPrefix + methodSuffix, null); //在该类中查找与字段所对应的get方法
    10.   Method methodSet
      

  3.   

    通用的打印一个类所有属性及其值得方法 
    public static String toString(Object obj)
    {
        StringBuffer str=new StringBuffer("");
        //得到类
        Class c = obj.getClass();
        //得到类中定义的属性
        Field[] fields = c.getDeclaredFields();
        //设置访问权限
        AccessibleObject.setAccessible(fields,true);
           
        for(int i=fields.length-1;i>=0;i--)
       {
     Field f = fields[i];
     str.append(" [ ").append(f.getName()).append("=");
              try
             {
               //调用obj.getXXX方法 
               Object o = f.get(obj);
               if(o == null)
               {
                  str.append("null");
               }
               else
               {
                  str.append(o.toString());
               }
             }
             catch(Exception e)
             {
               e.printStackTrace();
             }
            str.append(" ] ,");

       }
          return str.toString();
    }