通过java反射获得属性名 和 值
2014-04-14 16:37
441 查看
网上查的, 稍微改了改
有空再好好改
public static void getAllFieldsName(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
{
Field[] field = model.getClass().getDeclaredFields();//获取实体类的所有属性,返回Field数组
for(int j=0 , len=field.length; j<len ; j++)//遍历所有属性
{
String name = field[j].getName();//获取属性的名字
System.out.println("attribute name:"+name);
String type = field[j].getGenericType().toString();//获取属性的类型
if(type.equals("class java.lang.String")){//如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
String value = (String) m.invoke(model);//调用getter方法获取属性值
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Integer")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Integer value = (Integer) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Short")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Short value = (Short) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Double")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Double value = (Double) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Boolean")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Boolean value = (Boolean) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.util.Date")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Date value = (Date) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
}
}
}
public static String firstUpperCase(String str)
{
return str.replaceFirst(str.substring(0, 1), str.substring(0, 1).toUpperCase()) ;
}
有空再好好改
public static void getAllFieldsName(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
{
Field[] field = model.getClass().getDeclaredFields();//获取实体类的所有属性,返回Field数组
for(int j=0 , len=field.length; j<len ; j++)//遍历所有属性
{
String name = field[j].getName();//获取属性的名字
System.out.println("attribute name:"+name);
String type = field[j].getGenericType().toString();//获取属性的类型
if(type.equals("class java.lang.String")){//如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
String value = (String) m.invoke(model);//调用getter方法获取属性值
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Integer")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Integer value = (Integer) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Short")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Short value = (Short) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Double")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Double value = (Double) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Boolean")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Boolean value = (Boolean) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.util.Date")){
Method m = model.getClass().getMethod("get"+firstUpperCase(name));
Date value = (Date) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
}
}
}
public static String firstUpperCase(String str)
{
return str.replaceFirst(str.substring(0, 1), str.substring(0, 1).toUpperCase()) ;
}
相关文章推荐
- DAY18--java中你必须知道的23种经典模式开发Design Patterns
- spring AOP的实现原理
- Struts2高级
- Java学习笔记(二一)——Java 泛型
- Java8初体验(一)lambda表达式语法
- javadoc时候乱码-编码 GBK 的不可映射字符
- Java集合概述
- 注释驱动的 Spring cache 缓存介绍
- Java的回调函数和观察者模式的区别
- WebService介绍
- struts2.0+hibernate3.0+spring3实现注册登录(hbm)
- 二叉查找树的Java实现
- Struts1使用技巧
- 如何在Eclipse中查看Android API源码 及 support包源码
- HashMap 实现原理
- Struts2的基本原理
- ubuntu jdk1.7 安装
- Maven3路程(六)用Maven创建Spring3 MVC项目
- Java类加载信息的顺序:包括静态代码快、静态类变量、非静态代码快、构造方法、普通方法
- 设置eclipse全局编码格式