当前位置 : 主页 > 编程语言 > c++ >

java反射机制获取类的所有属性方法

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt public static void getObjectValue(Object object) throws Exception { if (object != null object instanceof BaseDomain) {//if (object!=null ) ----begin // 拿到类 Class clz = object.getClass(); // 获取实体类的所有属性,
gistfile1.txt
public static void getObjectValue(Object object) throws Exception {
  if (object != null && object instanceof BaseDomain) {//if (object!=null )  ----begin
   // 拿到类
   Class
  clz = object.getClass();
   // 获取实体类的所有属性,返回Field数组
   Field[] fields = clz.getDeclaredFields();

   for (Field field : fields) {// --for() begin
   //打印该类的所有属性类型
    System.out.println(field.getGenericType());

    // String
    if (field.getGenericType().toString().equals(
      "class java.lang.String")) { 
     // 拿到该属性的get,set方法
     Method m = (Method) object.getClass().getMethod(
       "get" + getMethodName(field.getName()));
    // 调用getter方法获取属性值
     String val = (String) m.invoke(object);
     if (val != null) {
      System.out.println("String type:" + val);
     }

    }

    //Integer
    if (field.getGenericType().toString().equals(
      "class java.lang.Integer")) {
     Method m = (Method) object.getClass().getMethod(
       "get" + getMethodName(field.getName()));
     Integer val = (Integer) m.invoke(object);
     if (val != null) {
      System.out.println("Integer type:" + val);
     }

    }

    // 如果类型是Double
    if (field.getGenericType().toString().equals(
      "class java.lang.Double")) {
     Method m = (Method) object.getClass().getMethod(
       "get" + getMethodName(field.getName()));
     Double val = (Double) m.invoke(object);
     if (val != null) {
      System.out.println("Double type:" + val);
     }

    }

   

    }
    //Date
    if (field.getGenericType().toString().equals(
      "class java.util.Date")) {
     Method m = (Method) object.getClass().getMethod(
       "get" + getMethodName(field.getName()));
     Date val = (Date) m.invoke(object);
     if (val != null) {
      System.out.println("Date type:" + val);
     }

    }
    //Short
    if (field.getGenericType().toString().equals(
      "class java.lang.Short")) {
     Method m = (Method) object.getClass().getMethod(
       "get" + getMethodName(field.getName()));
     Short val = (Short) m.invoke(object);
     if (val != null) {
      System.out.println("Short type:" + val);
     }

    }
   }  
  }
 }
 }
网友评论