转自:http://blog.sina.com.cn/s/blog_3c62c21f01011xci.html

方法使用了这俩个包下的 field 和method

import java.lang.reflect.Field;

import java.lang.reflect.Method;

public static void getObjectValue(Object object) throws Exception {
  //我们项目的所有实体类都继承BaseDomain (所有实体基类:该类只是串行化一下)
  //不需要的自己去掉即可
  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")) { // 如果type是类类型,则前面包含"class ",后面跟类名
     // 拿到该属性的gettet方法
     
     Method m = (Method) object.getClass().getMethod(
       "get" + getMethodName(field.getName()));

String val = (String) m.invoke(object);// 调用getter方法获取属性值
     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);
     }

}

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

}

// 如果类型是boolean 基本数据类型不一样 这里有点说名如果定义名是 isXXX的 那就全都是isXXX的
    // 反射找不到getter的具体名
    if (field.getGenericType().toString().equals("boolean")) {
     Method m = (Method) object.getClass().getMethod(
       field.getName());
     Boolean val = (Boolean) m.invoke(object);
     if (val != null) {
      System.out.println("boolean 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);
     }

}
    // 如果还需要其他的类型请自己做扩展

}//for() --end
   
  }//if (object!=null )  ----end
 }

// 把一个字符串的第一个字母大写、效率是最高的、
 private static String getMethodName(String fildeName) throws Exception{
  byte[] items = fildeName.getBytes();
  items[0] = (byte) ((char) items[0] - 'a' + 'A');
  return new String(items);
 }

转载于:https://www.cnblogs.com/muke-steven/p/5523650.html

通过java反射机制获取该类的所有属性类型、值。相关推荐

  1. Java反射机制——获取成员变量构造函数

    2019独角兽企业重金招聘Python工程师标准>>> Java反射机制--获取成员变量&构造函数 一.成员变量是java.lang.reflect.Field的对象 1.F ...

  2. 通过java类的反射机制获取类的属性类型

    import java.lang.reflect.Field; import java.lang.reflect.Method; Class<?> cls=Class.forName(cl ...

  3. java 反射获取对象_使用Java反射机制获取对象

    本文由广州疯狂软件教育java培训分享: 构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了! package interf; public interface Person ...

  4. Java反射机制获取系统@Hide属性

    如获取状态条高度 在源码程序中代码: height= getResources().getDimensionPixelSize(com.android.internal.R.dimen.status_ ...

  5. kettle job如何利用java的反射机制获取执行的sql语句

    kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制 ...

  6. java反射机制及使用案例

    java反射机制 获取Class对象的三种方式: 1.自定义类对象调用getClass()方法,此方法定义在Object类中. 2.自定义类的class属性(Student.class). 3.Cla ...

  7. 浅谈Java反射机制 之 获取类的字节码文件 Class.forName(全路径名) 、getClass()、class...

    先贴上Java反射机制的概念: AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及动态调用对 ...

  8. java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)

    Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...

  9. Java反射机制01_反射的概念以及获取字节码信息 的四种方式

    Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...

最新文章

  1. NR 5G AMF重定向的注册流程
  2. ITK:在矢量图像上执行注册
  3. java 不识别enum_关于java:Unit Test for Enum值不存在?
  4. spring下连接mysql_使用Spring连接mysql数据库
  5. 每次登陆都要滑动验证_湖人队冠军成员卡鲁索很吃香:每次谈判都有N支球队点名要他...
  6. jQuery——高级(js对象、json、ajax)
  7. 统计list里面相同元素个数_Array篇easy难度之求相同元素个数
  8. [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交
  9. 【OCR三】大批量生成文字训练集(转)
  10. python语言-Python Insider
  11. IE 不支持单引号(')的实体名称(amp;apos;)
  12. linux /etc/security/limits.conf的相关说明
  13. MATLAB--卡尔曼滤波
  14. Google Cloud API设计指南
  15. 【为什么电脑插上HDMI线之后,电脑没有了声音解决方案】
  16. eli和字符串(尺取算法)牛客网2020寒假训练营1
  17. 节假日读取接口_2018年节假日API接口,直接计算好的
  18. 深入理解Docker原理
  19. 揭秘阿里云WAF背后神秘的AI智能防御体系
  20. 6 款顶级 Android 数据恢复软件列表

热门文章

  1. POJ 3264: Balanced Lineup
  2. left join 和 left outer join 有什么区别
  3. 收到猎头信息的一些感想
  4. mysql状态常用参数分析
  5. 影像采集-拍照 (用自己的插件 )简单逻辑
  6. mongoose的基本使用
  7. Elasticsearch上手——熟悉基本操作
  8. MyBatis 之 动态SQL
  9. WPF Wonders: Transformations (and Robots!)
  10. HDU1160:FatMouse's Speed(最长上升子序列,不错的题)