VVL1295

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

系统内置了三种Annotation

  @Override,指明要进行重写方法;@SuppressWarnings:指压制警告,使用方法:@Suppress Warnings("unchecked");

  @Deprecated:指明不建议使用的;

自定义Annotation

Annotation的使用方法:

  //最简单的一种
1
@interface MyAnnotation{ 2 public String value(); 3 }
1 @interface MyAnnotation{
2     public String value();
3     public String key();
4 }
1 @interface MyAnnotation{
2     public String[] value();
3 }
1 @interface MyAnnotation{
2     public String value() default "hh";
3 }
1 enum Person{
2     LV,BB;
3 }
4 @interface MyAnnotation{
5     public Person value() default Person.BB;
6 }

四个作用于Annotation的Annotation:
  @Retetion:指定Annotation的作用范围,value=RUNTIME/CLASS/SOURCE,RUNTIME:保存在源文件,.class文件和JVM;CLASS:保存在源文件和.class文件;

  SOURCE:保存在源文件;

  @Target:指定Annotation作用的位置;

  @Documented:指示某一类型的注释将通过 javadoc 和类似的默认工具进行文档化;

  @Inherited:指示注释类型被自动继承,注意,如果使用注释类型注释类以外的任何事物,此元注释类型都是无效的;

反射机制与Annotation

  public <A extends Annotation> A getAnnotation(Class<A> annotationClass)

  public Annotation[] getDeclaredAnnotations()

  public boolean isAnnotation();

怎样让注解起作用

  注解是用于修饰的,语义上与注释相似,但是注解是java代码的一部分,会被编译成.class文件;

  要让注解起作用,通常用注解修饰方法或者类,然后用注解处理器对被修饰的方法或者类进行处理,真正进行操作的是注解处理器,注解作为用于定位的工具,让注解处理器定位到具体的类或者方法,然后进行处理,确定定位是通过反射进行的;

posted on 2015-11-16 15:23  bobo2018  阅读(99)  评论(0)    收藏  举报