黑马程序员_java基础加强之(内省)
来源:互联网 发布:查看监听端口命令 编辑:程序博客网 时间:2024/05/22 10:36
---------------------- android培训、java培训、期待与您交流! ----------------------
内省(IntroSpector):
主要对javabean进行操作
方法的名称符合某种特定的规则的一种java类我们称之为javabean
javabean名称的属性是根据方法推断来的,去掉前缀剩下来的(如:getAge-->age)
gettime-->time
setTime-->time
getCPU-->CPU
它根本看不到java类内部的成员变量。
特点:
1,JavaBean类必须是一个公共类,并将其访问属性设置为public,如:public class user{。。。}
2,JavaBean类必须有一个空参数的构造函数,即类中必须有一个不带参数的公用构造器。
3,一个javaBean类不应该有公共成员变量,类变量都是private(私用的)。
虽然我们可以通过反射获得类中的属性值,但是JavaBean可以为我们带来一些好处:
1.简化获取:
PropertyDescriptor::Bean的一个子类;描述 JavaBean 通过一对存储器方法导出的一个属性。
也可是使用BeanInfo Method(遍历);
BeanInfo代表某个类的整个JavaBean。
ReflectPoint pt1 = new ReflectPoint(2, 3);
内省的简单应用
获取值
private static Object getProperty(Object pt1, StrinpropertyName)
throws IntrospectionException, IllegalAccessException,
InvocationTargetException {
PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
Method methodGetX = pd.getReadMethod();
Object retVal = methodGetX.invoke(pt1);
return retVal;
}
设置值
private static void setProperties(Object pt1, StringpropertyName,
Object value) throws IntrospectionException,IllegalAccessException,
InvocationTargetException {
PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,pt1.getClass());
Method methodSetX = pd2.getWriteMethod();
methodSetX.invoke(pt1,value);
}
使用工具
Apache工具:BeanUtils和logging;
BeanUtils以String形式设置,返回的也是String。
好处:
1,省去了类型转换的工作,返回的是String类型的。支持属性链!!一级一级访问!!exp:date.time
2,提供方法使JavaBean和Map可以相互转换。(因为Map和JavaBean很类似。)
---------------------- android培训、java培训、期待与您交流! ----------------------
- 黑马程序员_java基础加强之(内省)
- 黑马程序员_Java基础加强_内省
- 黑马程序员_张孝祥_Java基础加强_JavaBean、内省
- 黑马程序员-------(基础加强)内省
- 黑马程序员--基础加强(内省-javabean)
- 黑马程序员_java基础加强之JavaBean
- 黑马程序员_Java基础加强之反射
- 黑马程序员_java基础加强之反射
- 黑马程序员_java基础加强之枚举
- 黑马程序员基础加强---内省
- 黑马程序员_java基础加强之(反射)
- 黑马程序员_java基础加强(一)
- 黑马程序员_java基础加强
- 黑马程序员_JAVA基础加强
- 黑马程序员_Java基础加强
- 黑马程序员_Java基础加强
- 黑马程序员_java基础加强
- 黑马程序员:基础加强之反射机制和内省
- 关于Struts2中Action从表单取值并且存到Web元素中(session)
- 程序员的自我修养---C/C++运行库
- HTML5&Flash之粗知浅见
- eclipse安装ADT缺少org.eclipse.wst.sse.core错误的解决办法
- Z-Stack ZigBee API命令解释----应用程序编程接口1
- 黑马程序员_java基础加强之(内省)
- 做人那点事
- java基础知识
- 基于Android opengles的魔方开发总结(二)
- 关于中文乱码和浏览器图片缓存的问题
- SICP Exercise 4.13
- 解析Hibernate的结构
- 缓存(http://www.infoq.com/cn/articles/misunderstanding-using-cache-2)
- 高效真实的云效果渲染算法