JAVA反射之内省

摘要:
JavaBean:这意味着Java类的所有属性都是私有的,提供了一个公共getter。setter方法提供了一个没有参数的构造方法类,该类必须是公共的。JDK必须打包以提供一些用于操作JavaBeans的API。这组API称为内省。˃beanClass)GetMethodDescriptor[]getMethodDescriptors():返回bean PropertyDescriptor[]的所有方法的描述信息getPropertyDescriptors(关键公共方法:PropertyDescriptor类:描述属性PropertyDescriptor(StringpropertyName,class<?>beanClass):创建PropertyDescriptor对象class<?根据指定的属性名和目标bean类的类对象?

JavaBean:
就是一个java类
属性全部私有,提供公有的getter,setter方法
提供一个无参的构造方法
类必须公有,必须打包


JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省。

内省API:
Introspector类: 构建一个全面描述目标 bean 的 BeanInfo 对象
BeanInfo接口:封装bean的信息 实例通过Introspector的静态方法getBeanInfo(Class<?> beanClass)得到
MethodDescriptor[] getMethodDescriptors():返回该bean类的所有方法的描述信息
PropertyDescriptor[] getPropertyDescriptors():返回该bean类的所有属性的描述信息


-------------------------------------------------
MethodDescriptor类:描述方法
Method getMethod()

重点常用方法:
PropertyDescriptor类:描述属性
PropertyDescriptor(String propertyName, Class<?> beanClass):根据指定的属性名和目标bean类的class对象创建一个PropertyDescriptor 对象
Class<?> getPropertyType():返回属性类型的class对象
Method getReadMethod():返回属性的get方法
Method getWriteMethod():返回属性的set方法

免责声明:文章转载自《JAVA反射之内省》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)男神鹏:实现在自己的本地服务器设置域名操作!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

获取Spring容器中Bean实例的工具类(Java泛型方法实现)

在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean。 因此,实现一个获得bean实例的工具类,就很有必要。 以前,写了一个根据bean的名称和类型获取bean实例的2个工具方法,发现每次调用后,都需要强制转换成目标结果类型。 这样很不方便,突然想到可以使用Java泛型方法,实现1个新的工具方法,避免了类型转换...

java web开发入门四(spring)基于intellig idea

spring  1.spring简介 Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架。                           且可以和其他框架一起使用;Spring与Struts,  Spring与hibernate                           (起到整合(粘合)作用的一个框架) Spring提供了一...

设置Shiro超时时间

1、在shiro的配置文件中配置。 <!-- 会话管理器 --> <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> <!-- 设置超时时间 --> <prope...

spring中@value注解需要注意

首先,@value需要参数,这里参数可以是两种形式:@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}");其次,下面我们来看看如何使用这两形式,在配置上有什么区别:1、@Value("#{configProperties['t1.msgname']}")这种形式的配置中有“...

Pointcut is not well-formed: expecting '(' at character position 0 mypt

一月 08, 2017 4:18:23 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationConte...

[解决方法] spring-mongo mongodb 2.x 升级到 3.x 配置中出现的一些问题

问题1: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleDaoImpl': Injection of resource dependencies failed; nested exception is org.sprin...