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文件;

  要讓註解起做用,一般用註解修飾方法或者類,而後用註解處理器對被修飾的方法或者類進行處理,真正進行操做的是註解處理器,註解做爲用於定位的工具,讓註解處理器定位到具體的類或者方法,而後進行處理,肯定定位是經過反射進行的;

相關文章
相關標籤/搜索