最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你入門java注解

 更新時間:2021年08月05日 09:35:07   作者:再來半包  
這篇文章主要介紹了Java注解詳細介紹,本文講解了Java注解是什么、Java注解基礎(chǔ)知識、Java注解類型、定義Java注解類型的注意事項等內(nèi)容,需要的朋友可以參考下

注解

什么是注解

  • Annotation是從JDK5.0開始引入的新技術(shù)
  • Annotation的作用:
    • 1.不是程序本身,可以對程序做出解釋(這一點和注釋(comment)沒什么區(qū)別)
    • 2.可以被其他程序(比如:編譯器等)讀取

Annotation的格式:

​ 注解是以"@注釋名"在代碼中存在的,還可以添加一些參數(shù)值,例如:

​ @SuppressWarnings(value=“unchecked”)

Annotation在哪里使用

​ 可以附加到package,class,method,field等上面,相當于給他們添加了額外的輔助信息,我們可以通過反射機制編程實現(xiàn)對這些元數(shù)據(jù)的訪問

內(nèi)置注解

@Override:定義在Java.lang.Override中,此注釋只適用于修飾方法,表示一個方法聲明打算重寫超類中的另一個方法聲明

public class Test extends Object{
	//@Override 重寫注解,必須是重寫超類的方法,不然會發(fā)生編譯器上的錯誤
    @Override
    public String toString() {
        return super.toString();
    }
}

@Deprecated:定義在Java.lang.Deprecated中,此注釋可以用于修飾方法,屬性,類,表示不鼓勵程序員使用這樣的元素,通常是因為它很危險或者存在更好的選擇

	@Deprecated   //意思為方法已經(jīng)過時,存在危險,或者有更好的方法
    public static void test01(){
        System.out.println("過時的");
    }
    public static void main(String[] args) {
        test01();
    }

雖然是過時或存在危險,但是依然可以調(diào)用此方法,

在這里插入圖片描述

根據(jù)上面的圖片也會看到,如果被@Deprecated注釋上的方法,在調(diào)用的時候,會畫一點橫線

@suppressWarnings:定義在java.lang.SuppressWarnings中,用來抑制編譯時的警告信息,

​ 與前兩個注釋有所不同,你需要添加一個參數(shù)才能正常使用,這些參數(shù)都是已經(jīng)定義好了的,我們選擇性的使 用就好了

√@SuppressWarnings(“all”)

√@SuppressWarnings(“unchecked”)

√@SuppressWarnings(value={“unchecked”,“deprecation”})

√等等

元注解

元注解的作用就是負責注解其他注解,Java定義了4個標準的meta-annotation類型,他們被用來提供對其他annotation類型作說明

這些類型和它們所支持的類在Java.lang.annotation包中可以找到(@Target@Retention,@Documented,@Inherited

@Target:用于描述注解的使用范圍(即:被描述的注解可以用在什么地方)

@Retention:表示需要在什么級別保存該注釋信息,用于描述注解的生命周期

(SOURCE<CLASS<RUNTIME)

@Document:說明該注解將被包含在Javadoc中

@Inherited:說明子類可以繼承父類中的該注解

//測試元注解
    @MyAnnotation
public class Test02 {
}
//定義一個注解
//Target  表示我們的注解可以用到哪些地方
@Target(value = {ElementType.METHOD,ElementType.TYPE}) //METHOD注解可以在方法TYPE可以在類
//Retention 表示我們的注解在什么地方還有效
//runtime>class>sources
@Retention(value = RetentionPolicy.RUNTIME)
//Documented 表示是否將我們的注解生成在Javadoc中
@Documented
//子類可以繼承父類的注解
@Inherited
 @interface MyAnnotation{
}

自定義注解

使用**@interface**自定義注解時,自動繼承了java.lang.annotation.Annotation接口

分析:

@interface用來聲明一個注解,格式:public @interface 注解名{ 定義內(nèi)容 }

其中的每一個方法實際上是聲明了一個配置參數(shù)

方法的名稱就是參數(shù)的名稱

返回值類型就是參數(shù)的類型(返回值只能是基本類型,Class,String,enum)

可以通過default來聲明參數(shù)的默認值

如果只有一個參數(shù)成員,一般參數(shù)名為value

注解元素必須要有值,我們定義注解元素時,經(jīng)常使用空字符串,0作為默認值

實例

public class Test03 {
    //注解可以顯示賦值,如果沒有默認值,我們就必須給注解賦值
    @MyAnntotation2(schools = {"河北軟件","寬城職教"})
    public void Test(){}
    @MyAnntotation3("ccl")  //可以省略value
    public void Test1(){}
}
//多次參數(shù)的注解
@Target({ElementType.TYPE,ElementType.METHOD})  //可以用到哪里
@Retention(RetentionPolicy.RUNTIME)   // 表示在什么地方有效
@interface MyAnntotation2{
    //注解的參數(shù):參數(shù)類型+參數(shù)名();
    String name() default "";
    int age() default 0;
    int id() default -1; //如果默認值為-1,代表不存在
    String[] schools();
}
//一個參數(shù)的注解
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnntotation3{
    String value() ;
}

如果注解的參數(shù)只要有一個的時候,可以將參數(shù)名設(shè)為value,這樣在寫注解的時候,括號里可以省略value參數(shù)名,而別的參數(shù)名需要寫上

@interface MyAnntotation3{
    String value() ;
}

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • mybatis-plus的添加與修改詳解

    mybatis-plus的添加與修改詳解

    這篇文章主要介紹了mybatis-plus的添加與修改方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • jmeter調(diào)試錯誤全集(入門必備)

    jmeter調(diào)試錯誤全集(入門必備)

    在使用jmeter做接口測試的過程中大家是不是經(jīng)常會遇到很多問題,本文就介紹了jmeter調(diào)試錯誤全集,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • java連接zookeeper的實現(xiàn)示例

    java連接zookeeper的實現(xiàn)示例

    ZooKeeper官方提供了Java API,可以通過Java代碼來連接zookeeper服務(wù)進行操作,本文就來介紹一下java連接zookeeper的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • RabbitMQ之死信隊列深入解析

    RabbitMQ之死信隊列深入解析

    這篇文章主要介紹了RabbitMQ之死信隊列深入解析,?死信,顧名思義就是無法被消費的消息,字面意思可以這樣理解,一般來說,producer將消息投遞到 broker 或者直接到 queue 里了,consumer 從 queue 取消息進行消費,需要的朋友可以參考下
    2023-09-09
  • spring?boot整合mongo查詢converter異常排查記錄

    spring?boot整合mongo查詢converter異常排查記錄

    這篇文章主要為大家介紹了spring?boot整合mongo查詢時拋出converter異常的排查解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03
  • Java synchronized的鎖升級過程詳解

    Java synchronized的鎖升級過程詳解

    在 JDK 1.6之前,synchronized 是一個重量級、效率比較低下的鎖,但是在JDK 1.6后,JVM 為了提高鎖的獲取與釋放效,,對 synchronized 進行了優(yōu)化,所以本文給大家介紹了synchronized的鎖升級過程,需要的朋友可以參考下
    2024-04-04
  • java程序中的延時加載異常及解決方案

    java程序中的延時加載異常及解決方案

    這篇文章主要介紹了java程序中的延時加載異常及解決方案,需要的朋友可以參考下
    2015-02-02
  • Java中的異常處理機制try-catch詳解

    Java中的異常處理機制try-catch詳解

    這篇文章主要介紹了Java中的異常處理機制try-catch詳解,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • spring?boot?3使用?elasticsearch?提供搜索建議的實例詳解

    spring?boot?3使用?elasticsearch?提供搜索建議的實例詳解

    這篇文章主要介紹了spring?boot3使用elasticsearch提供搜索建議,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Java中Dom4j的配置與使用示例詳解

    Java中Dom4j的配置與使用示例詳解

    Dom4j是一個強大的Java庫,用于處理XML數(shù)據(jù),結(jié)合了DOM、SAX、JDOM的優(yōu)點,它可以解析、生成、修改和序列化XML文檔,適用于數(shù)據(jù)交換、配置文件管理、日志記錄、數(shù)據(jù)持久化和Web服務(wù)等場景,Dom4j提供了簡單易用的API,便于開發(fā)者進行高效的XML操作
    2024-10-10

最新評論

青海省| 清原| 合川市| 丘北县| 荆州市| 蒲江县| 丹棱县| 滕州市| 南部县| 都昌县| 朝阳县| 丰都县| 巴林右旗| 石门县| 米林县| 呈贡县| 邹平县| 海原县| 乌兰察布市| 芒康县| 寿宁县| 保康县| 来宾市| 英德市| 工布江达县| 北碚区| 洛隆县| 大田县| 临朐县| 繁昌县| 昌都县| 安陆市| 永春县| 额尔古纳市| 谢通门县| 曲周县| 谢通门县| 开封县| 堆龙德庆县| 河池市| 景谷|