通过java类的反射机制获取类的属性类型
来源:互联网 发布:知乎 发哥 编辑:程序博客网 时间:2024/06/05 19:19
import java.lang.reflect.Field;import java.lang.reflect.Method;
Class<?> cls=Class.forName(className);//通过类的名称反射类//Class<?> cls = Object.getClass();Field field = cls.getDeclaredField("name");//根据属性名称获取单个属性if (field.getGenericType().toString().equals("int")||field.getGenericType().toString().equals("class java.lang.Integer")){System.out.println("Integer type");}//下面是获取所有属性(取自网络,仅供参考)
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
0 0
- 通过java类的反射机制获取类的属性类型
- 关于通过java反射机制,获取类属性的类型修饰符
- 通过java反射机制来获取属性的类型,获取属性的值并给属性赋值
- 通过反射机制获取类集合的所有属性值
- 通过java反射机制获取该类的所有属性类型、值、
- 通过java反射机制获取该类的所有属性类型、值
- 通过java反射机制获取该类的所有属性类型、值、
- 通过java反射机制获取该类的所有属性类型、值。
- 通过java反射机制获取该类的所有属性类型、值。(
- 通过java反射机制获取该类的所有属性类型、值、
- 通过java反射机制获取该类的所有属性类型、值
- java通过反射机制取类的属性和方法
- java 通过反射机制得到类的属性和方法
- Java反射机制获取/调用类的属性和方法
- 通过反射获取类的属性
- 通过反射获取类的所有属性
- 通过java反射机制,获取对象的属性和值(包括所有继承的父类)
- 通过反射获取匿名类型的属性和属性值
- Coursera_机器学习_week6_机器学习应用建议
- pods 引入realm的提示版本错误
- Git学习:利用Git和TortoiseGit把代码传输到网络服务器
- RecyclerView的使用
- 关于cas server无法通过session持久化方式实现集群的问题
- 通过java类的反射机制获取类的属性类型
- 关于overridePendingTransition()的使用
- CLR Via C# 第一章(CLR的执行模型)——读书笔记
- 国内领先的容器云平台和解决方案提供商有哪些
- 笨笨的SVN权限管理
- 关于硬币组合问题和DP的结合
- mysql进阶(二十二)MySQL错误之Incorrect string value: '\xE7\x81\xAB\xE7\x8B\x90...中文字符输入错误
- Plus One
- LeetCode Climbing Stairs(经典动态规划)