利用反射打印对象所有属性的工具类
2012-10-07 21:27
661 查看
package day01.util;
import java.lang.reflect.Field;
public class EntityUtil {
/**
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @param一个Object对象
* @return传入参数对象的所有属性名及值
*/
public static String entityToString(Object obj) throws IllegalArgumentException, IllegalAccessException
{
Class c = obj.getClass();
if (c == null)
return null;
else
{
StringBuilder sb = new StringBuilder();
String str = getClassFields(obj, c, sb);
return str;
}
}
private static String getClassFields(Object obj, Class c, StringBuilder sb) throws IllegalArgumentException, IllegalAccessException
{
int i;
String name;
Object value;
sb.append(c.getName()).append("[");
Field[] fs = c.getDeclaredFields();
for (i=0; i<fs.length; i++)
{ //start for
fs[i].setAccessible(true);
name = fs[i].getName();
value = fs[i].get(obj);
sb.append(name).append("=").append(value);
if (i != fs.length-1)
sb.append(",");
} //end for
c = c.getSuperclass();
if (c != null && c != Object.class)
{
sb.append(" "); //父类属性前加空格
getClassFields(obj, c, sb);
}
sb.append("]");
return sb.toString();
}
}
import java.lang.reflect.Field;
public class EntityUtil {
/**
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @param一个Object对象
* @return传入参数对象的所有属性名及值
*/
public static String entityToString(Object obj) throws IllegalArgumentException, IllegalAccessException
{
Class c = obj.getClass();
if (c == null)
return null;
else
{
StringBuilder sb = new StringBuilder();
String str = getClassFields(obj, c, sb);
return str;
}
}
private static String getClassFields(Object obj, Class c, StringBuilder sb) throws IllegalArgumentException, IllegalAccessException
{
int i;
String name;
Object value;
sb.append(c.getName()).append("[");
Field[] fs = c.getDeclaredFields();
for (i=0; i<fs.length; i++)
{ //start for
fs[i].setAccessible(true);
name = fs[i].getName();
value = fs[i].get(obj);
sb.append(name).append("=").append(value);
if (i != fs.length-1)
sb.append(",");
} //end for
c = c.getSuperclass();
if (c != null && c != Object.class)
{
sb.append(" "); //父类属性前加空格
getClassFields(obj, c, sb);
}
sb.append("]");
return sb.toString();
}
}
相关文章推荐
- C#通过反射获取对象属性,打印所有字段属性的值
- c# 利用反射获得某个类或者对象的所有属性
- C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)
- 利用反射机制动态获取对象属性名称及数据类型
- 通过反射机制获取某个类的所有属性,打印属性值,并思考以下问题:可以更改属性值吗?
- 利用反射得出某个类的所有属性
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- C#利用反射实现两个类的对象之间相同属性的值的复制
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 通过runtime打印出对象所有属性的值
- C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值
- 【初学笔记】利用反射、泛类思想操作对象的属性和方法的一种方案
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- c#利用反射轻松遍历类获取其所有属性及属性值
- 反射工具类:释放资源、获取对对象属性、设置属性等
- 利用反射设置对象的属性(Property)
- 编写一个文件,读取 src 下面day12包 下面的my.properties 文件,文件内容如下, className=day12.User 结合 IO、反射知识,完成 配置文件中对象的创建和方法调用。并编写方法,列举出 Student 类中所有的属性、
- 打印js中一个对象的所有属性的值
- 利用JAVA反射技术查找一个类的所有属性