通过java反射机制获取该类的所有属性类型、值。
转自: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反射机制获取该类的所有属性类型、值。相关推荐
- Java反射机制——获取成员变量构造函数
2019独角兽企业重金招聘Python工程师标准>>> Java反射机制--获取成员变量&构造函数 一.成员变量是java.lang.reflect.Field的对象 1.F ...
- 通过java类的反射机制获取类的属性类型
import java.lang.reflect.Field; import java.lang.reflect.Method; Class<?> cls=Class.forName(cl ...
- java 反射获取对象_使用Java反射机制获取对象
本文由广州疯狂软件教育java培训分享: 构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了! package interf; public interface Person ...
- Java反射机制获取系统@Hide属性
如获取状态条高度 在源码程序中代码: height= getResources().getDimensionPixelSize(com.android.internal.R.dimen.status_ ...
- kettle job如何利用java的反射机制获取执行的sql语句
kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制 ...
- java反射机制及使用案例
java反射机制 获取Class对象的三种方式: 1.自定义类对象调用getClass()方法,此方法定义在Object类中. 2.自定义类的class属性(Student.class). 3.Cla ...
- 浅谈Java反射机制 之 获取类的字节码文件 Class.forName(全路径名) 、getClass()、class...
先贴上Java反射机制的概念: AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及动态调用对 ...
- java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...
- Java反射机制01_反射的概念以及获取字节码信息 的四种方式
Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...
最新文章
- NR 5G AMF重定向的注册流程
- ITK:在矢量图像上执行注册
- java 不识别enum_关于java:Unit Test for Enum值不存在?
- spring下连接mysql_使用Spring连接mysql数据库
- 每次登陆都要滑动验证_湖人队冠军成员卡鲁索很吃香:每次谈判都有N支球队点名要他...
- jQuery——高级(js对象、json、ajax)
- 统计list里面相同元素个数_Array篇easy难度之求相同元素个数
- [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交
- 【OCR三】大批量生成文字训练集(转)
- python语言-Python Insider
- IE 不支持单引号(')的实体名称(amp;apos;)
- linux /etc/security/limits.conf的相关说明
- MATLAB--卡尔曼滤波
- Google Cloud API设计指南
- 【为什么电脑插上HDMI线之后,电脑没有了声音解决方案】
- eli和字符串(尺取算法)牛客网2020寒假训练营1
- 节假日读取接口_2018年节假日API接口,直接计算好的
- 深入理解Docker原理
- 揭秘阿里云WAF背后神秘的AI智能防御体系
- 6 款顶级 Android 数据恢复软件列表