package com.xxt.utils;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import net.xxt.entity.UserInfo;
/**
* @description Printf 打印对象
* @author Chjz
* @date 2009-11-25 上午11:25:35
*/
public class Printf {
/**
* 打印一个对象,测试时用,功能类似于 toString(),无侵入性
*/
public static void print(Object o){
System.out.println("----" + o.getClass().getName() + "----");
try {
BeanInfo beanInfo = Introspector.getBeanInfo(o.getClass());
PropertyDescriptor[] propertys = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertys) {
System.out.printf("%30s\t%20s\t",property.getPropertyType(), property.getName());
if(property.getPropertyType().isArray()){ //getPropertyType得到属性类型。
//getReadMethod()得到此属性的get方法----Method对象,然后用invoke调用这个方法
String[] result=(String[]) property.getReadMethod().invoke(o, new Object[]{});
for (int j = 0; j < result.length; j++) {
System.out.print(result[j] + ",");
}
System.out.println();
} else {
System.out.println(property.getReadMethod().invoke(o, new Object[]{}));
}
}
} catch (IntrospectionException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
UserInfo u = new UserInfo();
u.setAccountId("test");
print(u);
}
}
分享到:
相关推荐
4.9反射内省.txt.xmind
java反射全解(反射原理+反射API详解+反射与数组+反射与泛型+反射源码与性能开销+反射优缺点+反射与内省)
酷炫javaweb后台系统适合初学者【里面有封装 反射内省等】界面很nice 实现了用户模块,技术由浅入深,纯servlet 以及对servlet进行封装处理!
JAVA反射机制、注解、动态加载类、动态调用对象方法
NULL 博文链接:https://newjueqi.iteye.com/blog/397132
JAVA的内省机制(introspector)与反射机制(reflection).docx
特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。
javaweb servlet获取前端资源,通过内省(反射)自动 封装到实体类
内省机制
JavaBean及内省,介绍了JavaBean的概念、属性、使用、执行原理以及对内省的介绍
小议布赖恩·温的公众理解科学理论研究内省模型.doc
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
最小代码反射 JavaBean属性的低级反射和自省功能。 它支持字节码生成、注释和类型。
NULL 博文链接:https://tianyami.iteye.com/blog/1576854
这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods...
内省
主要介绍了Java 内省(Introspector)深入理解的相关资料,需要的朋友可以参考下
该项目旨在提供重型重构和内省工具,可以独立使用或作为文本编辑器的后端来提供智能代码完成。
虚拟机内省技术研究,杨先强,双锴,随着云计算的流行,虚拟机内省(Virtual Machine Introspection, VMI)技术及工具逐渐被用来监控IaaS云中虚拟机的行为。在这些技术的帮助下,�
内含commons-beanutils-1.9.2.jar,commons-logging-1.2.jar