註解在 Java 開發工具包 (JDK) 1.5 版本中引入或可用。 Java 中的註解提供了有關程式碼結構中存在的數據的更多信息,即,它是關於數據的數據,也稱為元數據。
Java 中的註解是什麼?
註解有助於以標準化方式定義程式碼中的元資料。此外,註解還有助於向 Java 編譯器提供編譯 Java 程式碼時要遵循的指令。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
使用註解時,我們使用「@」符號,然後加上註解的名稱,以便編譯器將其視為註解。
要注意的是,註解可以加在:
之前- 類別聲明
- 成員變數宣告
- 建構子宣告
- 方法宣告
- 參數聲明
- 局部變數宣告。
要記住的重要一點是所有註解都擴展 java.lang.annotation.Annotation 介面。此外,註解不能包含任何擴充子句。
內建 Java 註解
在Java中,有一些內建的註釋,例如@Override、@Deprecated、@SuppressWarnings,它們是為特定目的而設計的,並在上述情況之一中使用,例如,僅用於類別或僅用於方法等
範例 #1 – 覆蓋
代碼:
class Dad { public void say() { System.out.println("Do your homework"); } } public class Child extends Dad { @Override public void say(){ System.out.println("I wanna play"); } public static void main(String args[]){ Dad daddy = new Child(); daddy.say(); } }
輸出:
範例 #2 – 已棄用
代碼:
public class Outdated { @Deprecated public void oldShow() { System.out.println("This Method is deprecated"); } public static void main(String args[]) { Outdated od = new Outdated (); od.oldShow(); } }
輸出:
元註釋
元註解有五種類型:
- 記錄 – 它通知使用此註解的成員、變數或類別需要由 Javadoc 或任何其他可用的類似工具記錄。
- 目標 – 用來指定註解使用的類型。它主要與您的自訂註釋一起使用。
- 繼承 – 標記要繼承給子類別的註解。
- 保留 – 指示註解類型的註解要保留多久。它採用保留策略參數,可能值為:SOURCE、CLASS 和 RUNTIME。
- 可重複 - 這表示其聲明的註解類型是可重複的。
範例 – 文件與保留
代碼:
import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @interface RSample { String rentent(); } @Documented @interface DSample { String doc(); } public class MetaAnnotate { public static void main(String arg[]) { new MetaAnnotate().rentent(); new MetaAnnotate().doc(); } @RSample (rentent="Meta Info R") public void rentent() { System.out.println("Retention Policy Applied"); } @DSample(doc="Meta Info D") public void doc() { System.out.println("Code Documented with the value"); } }
輸出:
說明:
- RetentionPolicy.RUNTIME – 此值指定註解值應在執行時可用,以便透過 java 反射進行檢查。
- 執行 Javadoc 指令來查看程式碼的文件。
註解類型
註解分為三類,具體如下:
1。標記註釋– 這些類型的註釋用作聲明,通知開發人員以下函數或類別的全部內容,即,它共享有關函數或類別的額外信息,例如該函數是否覆蓋另一個函數或是函數已棄用等。 @Override、@Deprecated 被視為標記註釋。
範例: DemoAnnotation()
2。單值註釋 – 這種註解採用值來指定註解放置在前面的成員的值,因此不需要指定該成員的名稱。
範例: DemoAnnotation(“custId123”)
3。完整註釋 – 這種註釋採用多個值、對、成員。
範例: DemoAnnotation(category=”Toys”, value=1500)
自訂
自訂註解由使用者介面創建,後面跟著註解名稱,如我們將在下面的範例中看到的。
文件 1:定義的自訂註解
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface Magicians { String Wizard() default "Reynolds"; String House() default "Green"; } @Magicians public class Magician { @Magicians(Wizard = "Harry Potter", House = "Red") public String getString() { return null; } }
檔案2:呼叫自訂註解類別的主類別
import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; public class MyCustomAnnotation { public static void main(String[] args) throws NoSuchMethodException, SecurityException { new Magician(); Class<magician> magic = Magician.class; readAnnotationOn(magic); Method method = magic.getMethod("getString", new Class[]{}); readAnnotationOn(method); } static void readAnnotationOn(AnnotatedElement element) { try { System.out.println("\n Find annotations on " + element.getClass().getName()); Annotation[] annotations = element.getAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Magicians) { Magicians mData = (Magicians) annotation; System.out.println("Wizard Name :" + mData.Wizard()); System.out.println("Wizard House Color :" + mData.House()); } } } catch (Exception e) { e.printStackTrace(); } } }</magician>
輸出:
結論
在本文中,我們透過範例了解了什麼是 java 註解及其類型,我們看到了 java 提供的內建註解的範例,並編寫了自訂註解。我們看到註釋對於標準化程式碼很有用,也有助於更好地理解程式碼及其結構。
以上是Java註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1
強大的PHP整合開發環境