Java 註解 Annotation
一、Annotation工作方式
從Java5.0版本釋出以來,5.0平臺提供了一個正式的annotation功能:允許開發者定義、使用自己的annotation型別。
此功能由一個定義annotation型別的語法和一個描述annotation宣告的語法,讀取annotation的API,一個使用annotation
修飾的class檔案,一個annotation處理工具(apt)組成。
annotation並不直接影響程式碼語義,但是它能夠工作的方式被看做類似程式的工具或者類庫
它會反過來對正在執行的程式語義有所影響。 annotation可以從原檔案、class檔案或者以執行時反射
二、Java註解
1、Override註解
表示子類要重寫(override)父類的對應方法
java.lang.Override是個Marker annotation,使用者標識的Annotation,Annotation名稱本身即表示了要給工具程式的資訊
2、 Deprecated註解
表示方法是不建議被使用的。
3、SuppressWarning註解
表示抑制警告
三、自定義註解
1.定義一個註解
public @interface AnnotationTest { //屬性value String value(); }
使用註解
@AnnotationTest("hello") public class AnnotationUsage { @AnnotationTest("world") public void method() { System.out.println("usage of annotation"); } public static void main(String[] args) { AnnotationUsage usage = new AnnotationUsage(); usage.method(); } }
2、 給註解增加預設值和列舉值
public @interface AnnotationTest { //屬性value,default設定預設值 String value() default "hello"; EnumTest value2(); } enum EnumTest{ Hello, World, Welcome; }
使用註解
@AnnotationTest(value2 = EnumTest.Welcome) public class AnnotationUsage { @AnnotationTest(value="world", value2 = EnumTest.World) public void method() { System.out.println("usage of annotation"); } public static void main(String[] args) { AnnotationUsage usage = new AnnotationUsage(); usage.method(); } }
三、註解的呼叫
1、建立註解
@Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String hello() default "tom"; String world(); }
2、在類和方法中使用註解
@MyAnnotation(hello="beijing", world="shanghai") public class MyTest { @MyAnnotation(hello="hangzhou", world="xihu") @Deprecated @SuppressWarnings("unchecked") public void output() { System.out.println("output something"); } }
3、使用反射測試
public class MyReflection { public static void main(String[] args) throws Exception { MyTest myTest = new MyTest(); Class<MyTest> c = MyTest.class; Method method = c.getMethod("output", new Class[]{}); if(method.isAnnotationPresent(MyAnnotation.class)){ method.invoke(myTest, new Object[]{}); MyAnnotation myAnnotation = method.getAnnotation(MyAnnotation.class); String hello = myAnnotation.hello(); String world = myAnnotation.world(); System.out.println(hello + ", " + world); } Annotation[] annotations = method.getAnnotations(); for(Annotation annotation : annotations){ System.out.println(annotation.annotationType().getName()); } } }
輸出結果
output something hangzhou, xihu com.example.annotation.MyAnnotation java.lang.Deprecated
四、Target的使用
1、定義一個註解,target為方法,只能被方法使用
@Target(ElementType.METHOD) public @interface MyTarget { String value(); }
2.使用
如上圖,類中使用該註解就會報錯。
相關推薦
JAVA註解Annotation
深入理解java java註解 annotation 註解處理器 annotatedelement 從 JDK 5.0 開始, Java 增加了對元數據(MetaData) 的支持, 也就是 Annotation(註解)Annotation 其實就是代碼裏的特殊標記, 這些標記可以在編譯,
Java註解(annotation)機制
前言 jdk1.5引入了註解機制(Annotation),用於對java裡面的元素(如:Class、Method、Field等等)進行標記。同時,java的反射類庫也加入了對Annotation的支援,因此我們可以利用反射來對特殊的Annotation進行特殊的處理,增強程式碼的語義。 本文
Java註解Annotation使用
Java註解Annotation的使用 RuntimeAnnotation註解 package annotation; import java.lang.annotation.ElementType; import java.lang.annotation.
深入JAVA註解 Annotation 自定義註解
一、基礎知識:元註解 要深入學習註解,我們就必須能定義自己的註解,並使用註解,在定義自己的註解之前,我們就必須要了解Java為我們提供的元註解和相關定義註解的語法。 元註解: 元註解的作用就是負責註解其他註解。Java5.0定義了4個標準的meta-annotatio
Java 註解 Annotation
一、Annotation工作方式 從Java5.0版本釋出以來,5.0平臺提供了一個正式的annotation功能:允許開發者定義、使用自己的annotation型別。 此功能由一個定義annotation型別的語法和一個描述annotation宣告的語法,讀取annotation的API,一個使用ann
java 註解(Annotation)
從 JDK 5.0 開始, Java 增加了對元資料(MetaData) 的支援, 也就是 Annotation(註解)。 Annotation 其實就是程式碼裡的特殊標記, 這些標記可
【java提高】(16)---java註解(Annotation)
java提高(16)---java註解 註解含義註解是JDK1.5之後才有的新特性,它相當於一種標記,在程式中加入註解就等於為程式打上某種標記,之後又通過類的反射機制來解析註解。 一、JDK自帶註解 JDK1.5之後內部提供的三個註解 @Deprecated #廢棄,過時。 @Overri
深入JAVA註解-Annotation(學習過程)
JAVA註解-Annotation學習 本文目的:專案開發過程中遇到自定義註解,想要弄清楚其原理,但是自己的基礎知識不足以支撐自己去探索此問題,所以先記錄問題,然後補充基礎知識,然後解決其問題。記錄此學習過程。 專案中遇到的註解: //使用註解的地方 @ServiceScan({"com.sin
深入學習JAVA註解-Annotation(學習過程)
# JAVA註解-Annotation學習 > 本文目的:專案開發過程中遇到自定義註解,想要弄清楚其原理,但是自己的基礎知識不足以支撐自己去探索此問題,所以先記錄問題,然後補充基礎知識,然後解決其問題。記錄此學習過程。 ## 專案中遇到的註解: ``` //使用註解的地方 @ServiceScan({"co
秒懂,Java 註解 (Annotation)你可以這樣學
face 幹什麽 有一種 博客 作用 習慣 lis 如果 手機 這處圖片引自老羅的博客。為了避免不必要的麻煩,首先聲明我個人比較尊敬老羅的。至於為什麽放這張圖,自然是為本篇博文服務,接下來我自會說明。好了,可以開始今天的博文了。 Annotation 中文譯過來就是註解、
Java 註解 (Annotation)
null lambda roi 實例 cut exce runt 比較 符號 Java 註解用於為 Java 代碼提供元數據。作為元數據,註解不直接影響你的代碼執行,但也有一些類型的註解實際上可以用於這一目的。Java 註解是從 Java5 開始添加到 Java 的。
秒懂Java 註解 (Annotation)
能夠 extend tty 來講 hub 開頭 arrays term con 文章開頭先引入一處圖片。 這處圖片引自老羅的博客。為了避免不必要的麻煩,首先聲明我個人比較尊敬老羅的。至於為什麽放這張圖,自然是為本篇博文服務,接下來我自會說明。好了,可以開始今天的博文了。 A
Java 基礎之--註解Annotation詳解
註解 java 基礎 time span face 自定義註解 div ace rtu 自定義註解入門: public @interface Annotation01 { //set default value ""; String value() de
java註解(Annotation)總結
java註解(Annotation)總結 吐糟時間 註解是什麼 註解有什麼用 註解的分類 怎麼自定義註解 新增屬性 註解的使用 解析執行時(RUNTIME)註解 解析編譯時(CLASS)註解
Java 之註解(Annotation)
1.Annotation為何而來 What:Annotation幹嘛的 JDK5開始,java增加了對元資料(MetaData)的支援,怎麼支援?答:通過Annotation(註解)來實現。Annotation提供了為程式元素設定元資料的方法。元資料:描述資料的資料
Java註解型別(@Annotation)
註解格式 @Retention(RUNTIME) @Target({ TYPE, FIELD, METHOD }) public @interface LinAnnotation { } 註解類不能被繼承(反編譯註解類的時候,發現註解類繼承Annotation類,java不支援多繼承)。
Java 註解 (Annotation)淺入深出
Java 註解 (Annotation)淺入深出 本文主要參考與借鑑frank909 文章,但更為簡單,詳細。 Annotation 中文譯過來就是註解、標釋的意思。Annotation是一種應用於類、方法、引數、變數、構造器及包宣告中的特殊修飾符。它是一種由JSR-175標準選擇用來描述元資料的一種工具
Java 註解(Annotation) 的基本使用和理解
1.註解 概念:相當於標籤 2.註解的型別 2.1 元註解 概念:元註解是可以註解到註解上的註解,或者說元註解是一種基本註解,但是它能夠應用到其它的註解上面 元註解的種類 @Retention @Documented @Target @Inherited
Java註解(Annotation)學習總結
註解的定義 註解通過 @interface 關鍵字進行定義。 public @interface TestAnnotation { } 它的形式跟介面很類似,不過前面多了一個 @ 符號。上面的程式碼就建立了一個名字為 TestAnnotaion 的註解。你可以簡
Java——註解(Annotation)
註解(Annotation) JDK提供的三個內建註解:@Override、@Deprecated、@SuppressWarnings 1.準確覆寫@Override 檢查當前類中的覆寫方法與父類中定義的同名方法是否相同,如果有任何一個地方不同,編譯報錯 2.過期處理