黑马程序员_内省和注解
来源:互联网 发布:国家社科基金数据库 编辑:程序博客网 时间:2024/06/05 09:28
所谓内省,主要是用来操作JavaBean类的,凡是带有set和get开头的方法名的类,都可以把它当成JavaBean类来看待
JavaBean格式
setAge --> Age
getCPU-->CPU
内省的简单操作:
Person p1 = new Person("zhangsan",12);//JavaBean对象
String propertyName = "age";//表示要获取的age的值
//在不知道获取属性方法名的情况下,是这么做的
PropertyDescriptor pd1 = new PropertyDescriptor(propertyName,p1.getClass());//字节码和要获得值的属性名
Method method = pd1.getReadMethod();//这个方法返回了获取属性值的方法的方法对象,即getAge()
Object relVal = method.invoke(p1);
PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,p1.getClass());
Method methodSet = pd2.getWriteMethod();// setAge方法的method对象
Object retX = methodSet.invoke(p1,10);
内省的复杂操作:
采用遍历Beaninfo的方式来查找和设置Person的x 属性
程序中如果要把一个类当成JavaBean来看待,调用IntroSpector.getBeanInfo,得到的BeanInfo就是封装了这个类的JavaBean结果信息
BeanInfo bi = IntroSpector.getBeanInfo(Person.class);
PropertyDescriptor[] pds =bi.getPropertyDescriptors();
Object redVal = null;
for(PropertyDescriptor pd :pds){
if(pd.getName().equals(propertyName){
Method method = pd.getReadMethod();
redVal = method.invoke(p1)
}
return redVal;
}
Beanutils工具包是专门操作JavaBean的
注解:
注解也是一个类,所谓注解,就是给类,方法,变量,加上一个标记,编译的时候,编译器会解释这些标记从而实现某些操作
三个注解入门:
@Deprecated :标记此元素已经过时了
@SuppressWarnings :取消指定的编译器警告
@Override 表示一个方法声明打算重写父类的方法,如果方法使用此注解,却没有重写父类方法,则会在编译的时候生成一条错误信息
元注解:@Retention 三种取值分别代表注解类的不同存在区域:Rentention.SOURCE Rentention.CLASS Retention.RUNTIME 分别对应源文件 class文件 内存中的字节码
@Target 确定注解类的可用范围 ElementType.Method ..
注解的强大功能之一就是可用为其增加属性
为其增加属性:String color(); 引用的时候@MyAnnotation(color="red")\
用反射获得注解对应的实例对象后,再通过对象调用属性对应的方法。
- 黑马程序员_内省和注解
- 黑马程序员_内省 注解
- 黑马程序员_高新技术之内省和注解小结
- 黑马程序员 内省和注解
- 黑马程序员_反射、内省、注解
- 黑马程序员_反射、内省、注解
- 黑马程序员——内省和注解
- 黑马程序员_内省
- 黑马程序员_内省
- 黑马程序员_内省
- 黑马程序员_内省
- 黑马程序员_内省
- 黑马程序员_内省
- 黑马程序员_内省
- 黑马程序员_内省和JavaBean笔记
- 黑马程序员_java学习日记_Java高新技术_内省和注解
- 【黑马程序员】张孝祥Java高新技术_内省、注解、泛型
- 黑马程序员 java_高新技术(三)_内省 JavaBean 注解
- 高性能、高并发TCP服务器(多线程调用libevent)
- java String与Blob类型数据转换
- 互联网不能成攻击他国“利器”
- jquery 页眉单行信息滚动显示实现思路及代码
- Shell使用笔记-获取当前脚本所在的目录
- 黑马程序员_内省和注解
- 网易彩票APP:世界杯竞彩 细节定成败
- C++构造函数与析构函数执行顺序
- destoon实现商铺管理主页设置增加新菜单的方法
- 了解并运行 Internet Explorer 保护模式
- mono以及 .NET
- mapreduce之StringTokenizer命令
- scrapy递归抓取网页数据
- Shell使用笔记-判断与比较