Java注解簡單使用實例解析
作為java開發(fā)的IDE,idea的2020 社區(qū)辦還是比較好用的,比2018版的改進(jìn)不少。
一個java注解的簡單例子
package main;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface TestAno {
enum DOMAIN{
AA,
BB;
public String call(String msg){
return msg + " is called";
}
}
DOMAIN type();
}
調(diào)用注解的例子
package main;
@TestAno(type = TestAno.DOMAIN.AA)
public class CallAno {
public static void main(String[] args) {
TestAno ano = CallAno.class.getAnnotation(TestAno.class);
System.out.println(ano.type()); // AA
System.out.println(TestAno.DOMAIN.AA.call("test")); // test is called
}
}
RetentionPolicy.SOURCE:注解只保留在源文件,當(dāng)Java文件編譯成class文件的時候,注解被遺棄;
RetentionPolicy.CLASS:注解被保留到class文件,但jvm加載class文件時候被遺棄,這是默認(rèn)的生命周期;
RetentionPolicy.RUNTIME:注解不僅被保存到class文件中,jvm加載class文件之后,仍然存在;
@Target:注解的作用
- @Target(ElementType.TYPE) //接口、類、枚舉
- @Target(ElementType.FIELD) //字段、枚舉的常量
- @Target(ElementType.METHOD) //方法
- @Target(ElementType.PARAMETER) //方法參數(shù)
- @Target(ElementType.CONSTRUCTOR) //構(gòu)造函數(shù)
- @Target(ElementType.LOCAL_VARIABLE)//局部變量
- @Target(ElementType.ANNOTATION_TYPE)//注解
- @Target(ElementType.PACKAGE) ///包
- @Inherited:說明子類可以繼承父類中的該注解
注解也可用于一些解耦的應(yīng)用,框架去調(diào)用接口的多個實現(xiàn)類。實現(xiàn)類的類名和路徑可能會變,只要注解不變。對框架來說是沒變的,框架的邏輯可以不變。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用ThreadLocal實現(xiàn)當(dāng)前登錄信息的存取功能
ThreadLocal和其他并發(fā)工具一樣,也是用于解決多線程并發(fā)訪問,下這篇文章主要給大家介紹了關(guān)于Java使用ThreadLocal實現(xiàn)當(dāng)前登錄信息的存取功能,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
基于Spring Security的Oauth2授權(quán)實現(xiàn)方法
這篇文章主要介紹了基于Spring Security的Oauth2授權(quán)實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
java?實現(xiàn)獲取指定位置后的第一個數(shù)字
這篇文章主要介紹了java?實現(xiàn)獲取指定位置后的第一個數(shù)字,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
java使用common-httpclient包實現(xiàn)post請求方法示例
這篇文章主要給大家介紹了關(guān)于java使用common-httpclient包實現(xiàn)post請求的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08

