java基礎註釋總結

ThoughtFlyCode發表於2018-02-04

如果還有重要資料需要加入,請檢視的各位幫忙備註

1. 建立一個標記註釋?
2. 建立一個後設資料標記註釋,並在其內部定義所有基本型別和String的後設資料?
3. 建立一個標記註釋時,我們可以為這個標記註釋指定哪些特性,並大概說一下他們的用處?
4. 有哪些常用的標記註釋,並闡述我們什麼時候會用到它?
5. 提取標記資訊需要使用到那個包,列舉出所有能被標記註釋的程式元素?
6. 說明APT的功能,能舉例說明最好?


答案1-2:
@interface 標記註釋名字
{
String name() default "123";
int id() default 1;
...
}


答案3:
@Retention(RetentionPolicy.CLASS|SOURCE|RUNTIME)
標記註釋在原始檔中,一是我們可以對原始檔進行處理,生成我們想要的原始檔,二是可以提取配置標記生成配置檔案,比如是在哪裡使用呢?APT原始碼處理工具
標記註釋在Class檔案中,這個暫時不知道在哪裡用????
標記註釋在執行過程中,可以隨時通過標記訪問標記的程式元素,請參考最後面應用一


@Target(ElementType.ANNOTATION_TYPE|CONSTRUCTOR|PACKAGE|TYPE|METHOD|FIELD|LOCAL_VARIABLE|PARAMETER)
指定標記可用於那個程式元素上


@Document
表明這個標記會被提取到Javadoc生成的API文件中


@Inherit
父類上有這個標記,子類會繼承這個標記


答案4:
@Override, @Deprecated, @SupressWarnings(value="uncheck")


答案5:
java.lang.reflect, Package, Class, Field, Constructor, Method


答案6:
能生成額外的原始檔和相關文件,還可以編譯原始檔和生成的原始檔,相關類AnnotationProcessor, AnnotationProcessorFactory, AnnotationProcessorEnvironment,TypeDeclaration


應用一:在執行的時候通過反射的方法訪問標記的程式元素,並動態的為程式元素注入相關屬性.通過註釋+反射,隨時可以為GUI介面裝配或更改Listener,所以在一個GUI內我們有時只需要定製好框架和註釋,Listener可以通過注入匯入,挺6的
應用二:生成hibernate xml文件,將持久化物件的set和get方法轉換為SQL語句執行,轉換方式-->使用cglib生成代理類-->持久化物件呼叫方法轉到代理物件執行,生成一條SQL語句直接執行或新增到一條SQL執行緒執行集合中

相關文章