首頁  >  文章  >  Java  >  Java註解

Java註解

WBOY
WBOY原創
2024-08-30 16:06:26470瀏覽

註解在 Java 開發工具包 (JDK) 1.5 版本中引入或可用。 Java 中的註解提供了有關程式碼結構中存在的數據的更多信息,即,它是關於數據的數據,也稱為元數據。

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();
}
}

輸出:

Java註解

範例 #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();
}
}

輸出:

Java註解

Java註解

元註釋

元註解有五種類型:

  1. 記錄 – 它通知使用此註解的成員、變數或類別需要由 Javadoc 或任何其他可用的類似工具記錄。
  2. 目標 – 用來指定註解使用的類型。它主要與您的自訂註釋一起使用。
  3. 繼承 – 標記要繼承給子類別的註解。
  4. 保留 – 指示註解類型的註解要保留多久。它採用保留策略參數,可能值為:SOURCE、CLASS 和 RUNTIME。
  5. 可重複 - 這表示其聲明的註解類型是可重複的。

範例 – 文件與保留

代碼:

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");
}
}

輸出:

Java註解

說明:

  • 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();
}
}
}

輸出:

Java註解

結論

在本文中,我們透過範例了解了什麼是 java 註解及其類型,我們看到了 java 提供的內建註解的範例,並編寫了自訂註解。我們看到註釋對於標準化程式碼很有用,也有助於更好地理解程式碼及其結構。

以上是Java註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn