反射的作用:实现框架功能
JavaBean的操作详解:
JavaBean是特殊的Java类,主要用于访问私有的字段,且方法名符合某种命名规则
如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object,简称VO)
内省(IntroSpector),它主要用于对JavaBean进行操作:
以前的方法:采用遍历BeanInfo的所有属性方式来查找和设置某个ReflectPoint对象的name属性。在程序中把一个类当作JavaBean来看,就是调用IntroSpector.getBeanInfo方法,得到的BeanInfo对象封装了把这个类当作JavaBean看的结果信息
程序代码如下:
Java提供的基本注解jdk1.5新特性(枚举,注解)
@Deprecated
标注方法已经过时
@Override
标注方法是否覆盖了父类方法
源代码:
总结:
注解相当于一种标记,在程序中加了注解就等于加上了某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事,标记可以加在包,类,字段,方法,方法的参数以及局部变量上。
Java.lang包,可以查看jdk中提供的最基本的annotation.
下面通过反射测试AnnotationTest的定义上是否有@MyAnnotation
代码如下:
注解生命周期:
Retention注解:
源注解:
Java源文件 | Class文件 | 内存中的字节码 |
RetentionPolicy.SOURCE | RetentionPolicy.CLASS | RetentionPolicy.RUNTIME |
@Override 覆写SOURCE
@SuppressWarnings 编译器,发出警告SOURCE
@Deprecated 过时 RUNTIME
Target注解:
指示注解加在哪里
为注解增加属性:
添加color属性:
--------------------------------
添加高级属性:
如数组类型,Class类型,注解类型属性
MetaAnnotation.java
ItcastAnnotation.java
AnnotationTest1.java