註解
註解
一:註解(Annotation)概述
Java 註解(Annotation)又稱 Java 標註,是 JDK5.0 引入的一種註釋機制。
Java 語言中的類、方法、變數、引數和包等都可以被標註。
框架 = 註解 + 反射 + 設計模式
二:常見的註解示例
使用Annotation時要在其他前面增加@符號,並把該Annotation當成一個修飾符使用。用於修飾它支援的程式元素。
//在編譯時進行格式檢查(JDK內建的三個基本註解)
@Override:限定重寫父類方法,該註解只能用於方法
@Deprecated:用於表示所修飾的元素(類、方法等)已過時。通常是因為所修飾的結構危險或存在更好的選擇。
@SuppressWarnlngs:控制編譯器警告
三:自定義註解
定義新的 Annotation型別使用@interface關鍵字。
自定義註解自動繼承了java.lang.annotation.Annotation介面。
Annotation的成員變數在Annotation定義中以無引數方法的形式來宣告。其方法名和返回值定義了該成員的名字和型別。我們稱為配置引數。型別只能是八種基本資料型別、String型別、Class型別、enum型別、 Annotation型別、以上所有型別的陣列。
可以在定義Annotation的成員變數時為其指定初始值,指定成員變數的初始值可使用default關鍵字。
如果只有一個引數成員,建議使用引數名為value。
如果定義的註解含有配置引數,那麼使用時必須指定引數值,除非它有預設值。格式是“引數名=引數值”,如果只有一個引數成員,且名稱為value,可以省略"value="。
沒有成員定義的Annotation稱為標記,包含成員變數的Annotation稱為後設資料Annotation。
注意:自定義註解必須配上註解的資訊處理流程(使用反射的方式)才有意義。
/**
* 如何自定義註解?參照 @SuppressWarnings定義。
* 1.註解宣告為 @interface。
* 2.內部定義成員:通常使用value表示。
* 3.可以指定成員的預設值,使用default定義。
* 4.如果自定義註解沒有成員,表明是一個標識作用。
* 5.如果註解有成員,在使用註解時,需要指明成員的值,如果有預設值,則不用。
*/
//@interface和介面沒有任何關係,只不過是一個固定的結構
public @interface MyAnnotation {
String value() default "hello";
}
四:JDK中的元註解
(1)四個基本元註解
作用在其他註解的註解(或者說--元註解)是:
@Retention - 標識這個註解怎麼儲存,是隻在程式碼中(SOURCE),還是編入class檔案中(CLASS)(預設行為),或者是在執行時可以通過反射訪問(RUNTIME)。
@Documented - 標記這些註解是否包含在使用者文件中。
@Target - 用於指定被修飾的Annotation能用於修飾哪些程式元素。
@Inherited - 被修飾的Annotation將具有繼承性。
類比:後設資料(對現有資料進行修飾)。
String neme = "hgk";
其中,hgk就是後設資料。
五:利用反射獲取註解資訊
六:JDK 8 中註解的新特性
(1)可重複註解
(2)型別註解
相關文章
- JAVA-註解(2)-自定義註解及反射註解Java反射
- 註解專題(一)Java元註解,內建註解Java
- Java註解-後設資料、註解分類、內建註解和自定義註解Java
- 【Spring註解】事務註解@TransactionalSpring
- @ResponseBody註解和@RequestBody註解使用
- Java註解詳解「註解專案實戰」Java
- Java中的註解-自定義註解Java
- 【String註解驅動開發】你瞭解@PostConstruct註解和@PreDestroy註解嗎?Struct
- Java註解解析-搭建自己的註解處理器(CLASS註解使用篇)Java
- SwaggerAPI註解詳解,以及註解常用引數配置SwaggerAPI
- Spring 註解程式設計之模式註解Spring程式設計模式
- SpringBoot註解Spring Boot
- 註解 javaJava
- java註解Java
- 註解 & 反射反射
- 註解 @component
- @import註解Import
- 註解類
- @SpringBootApplication註解Spring BootAPP
- Spring註解Spring
- @Bean 註解Bean
- Annotation註解
- 常用註解
- 註解和註釋區別
- Lombok 註解詳解Lombok
- @FeignClient註解詳解client
- Java 註解詳解Java
- Java註解詳解Java
- Java ”框架 = 註解 + 反射 + 設計模式“ 之 註解詳解Java框架反射設計模式
- 每日註解學習(九)@PostConstruct和@PreConstruct註解Struct
- Spring註解篇,學完註解深入瞭解SpringBoot更容易Spring Boot
- Java註解解析-基礎+執行時註解(RUNTIME)Java
- 【spring 註解】第3篇:@Scope、@Lazy和@Conditional註解Spring
- Java註解(Annotation)詳解Java
- java springboot 註解JavaSpring Boot
- 註解和反射反射
- 註解與反射反射
- @LoadBalanced註解原理