Java註解(Annotations),也被稱為元數據(Metadata),是Java 5.0中引入的一種註釋機制。它們能夠為程序元素(類、方法、變量等)打上標記,並可以在編譯、運行時以及部署時進行處理,從而使得程序可以通過註解來獲取額外的信息或者進行一些特殊的操作。
Java註解的語法採用「@註解名稱(參數列表)」的形式,其中@稱為註解標記,註解名稱是註解類型的名稱。在參數列表中,註解可以包含多個屬性,每個屬性都是以名稱=值的形式給出詳細的描述信息。
下面是幾個Java註解的例子:
@Override: 該註解告訴編譯器該方法是一個覆蓋了父類方法的方法,如果該方法不是覆蓋父類方法而被標注,則編譯器會報錯。
@SuppressWarnings: 該註解告訴編譯器忽略指定的警告信息,這對於一些遺留代碼或者某些不太嚴謹的庫文件非常有用。
@Deprecated: 該註解告訴編譯器此處代碼已被廢棄,建議使用其他功能或者替代方案,當程序中使用了被標注的代碼時,編譯器會發出警告。
@FunctionalInterface: 該註解表示接口是一個函數接口,該接口只包含一個抽像方法,可以被用於Lambda表達式。
@Test: 該註解指定一個方法作為測試方法,JUnit測試框架會自動識別並運行被標注的方法。
總之,Java註解在Java開發中扮演著越來越重要的角色,使用註解可以提高代碼的簡潔程度,降低代碼維護成本,同時提高代碼的可讀性和可維護性。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
}
答案:該注釋是一個自定義注釋,用於方法上,可以指定一個字符串值。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotation {
String author() default "unknown";
String date();
}
答案:該注釋是一個自定義注釋,用於類上,可以指定類的作者和日期。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ReadOnly {}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Singleton {}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface TimeLimit {
int seconds() default 5;
}