Annotation

系统内置了三种Annotationhtml

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

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

自定义Annotation工具

Annotation的使用方法:spa

  //最简单的一种
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文件;code

  SOURCE:保存在源文件;htm

  @Target:指定Annotation做用的位置;blog

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

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

反射机制与Annotation

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

  public Annotation[] getDeclaredAnnotations()

  public boolean isAnnotation();

怎样让注解起做用

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

  要让注解起做用,一般用注解修饰方法或者类,而后用注解处理器对被修饰的方法或者类进行处理,真正进行操做的是注解处理器,注解做为用于定位的工具,让注解处理器定位到具体的类或者方法,而后进行处理,肯定定位是经过反射进行的;

相关文章
相关标签/搜索