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

Java注解Annotaton詳解

 更新時(shí)間:2022年05月17日 10:11:39   作者:尤所不同  
Java 注解(Annotation)又稱 Java 標(biāo)注,是 JDK5.0 引入的一種注釋機(jī)制,文中給大家介紹了三種基本的Annotaton,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

1、三種基本的Annotaton

@Override : 限定某個(gè)方法,是重寫父類方法 , 該注解只能用于方法
@Deprecated : 用于表示某個(gè)程序元素 ( 類 , 方法等 ) 已過時(shí)
@SuppressWarnings : 抑制編譯器警告

@Override

class father{
   public void fly(){}
}
class son extends father{
    @Override
    public void fly() {
        super.fly();
    }
}

解讀

@Override表示son重寫了fly方法

細(xì)節(jié)

如果沒有@Override還是會(huì)重寫fly方法

class father{
   public void fly(){}
}
class son extends father{
    public void fly() {
        super.fly();
    }
}

寫了@Override注解,編譯器就會(huì)去檢查方法是否重寫了父類方法,如果重寫了,則編譯通過。若沒有重寫,則編譯錯(cuò)誤。

@Override只能修飾方法,不能修飾其他類,包,屬性等等

//@Override底層代碼
@Target(ElementType.METHOD)//ElementType.METHOD說明@Override只能修飾方法
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

@Deprecated

public class Deprecatedtext {
    public static void main(String[] args) {
        father father1 = new father();
        father1.fly();
    }
}
@Deprecated
class father{
    @Deprecated
   public void fly(){}
}

解讀

@Deprecated表示某個(gè)程序元素(類,方法等)已過時(shí),會(huì)通過單詞中間的橫線提醒。表示不建議使用。

效果

細(xì)節(jié)可以修飾方法,類,包,參數(shù)等等

//@Deprecated底層代碼
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//說明Deprecated能修飾方法,類,包,參數(shù)等等
public @interface Deprecated {
}

2.@Deprecated的作用可以起到做新舊版本的兼容過渡

@SuppressWarnings

@SuppressWarnings("all")
class father{
   public void fly(){}
}

解讀

@SuppressWarnings注解可以用來抑制警告信息{""}寫入你希望抑制的警告信息

效果

細(xì)節(jié)

1.@SuppressWarnings作用范圍和你放置的位置相關(guān)

public class Enumtext {
    @SuppressWarnings("all")//作用范圍在main方法
    public static void main(String[] args) {
        father father1 = new father();
        father1.fly();
    }
}
@SuppressWarnings("all")//作用范圍在father類
class father{
   public void fly(){}
}

指定警告類型有

all,抑制所有警告
boxing,抑制與封裝/拆裝作業(yè)相關(guān)的警告
cast,抑制與強(qiáng)制轉(zhuǎn)型作業(yè)相關(guān)的警告
dep-ann,抑制與淘汰注釋相關(guān)的警告
deprecation,抑制與淘汰的相關(guān)警告
fallthrough,抑制與switch陳述式中遺漏break相關(guān)的警告
finally,抑制與未傳回finally區(qū)塊相關(guān)的警告
hiding,抑制與隱藏變數(shù)的區(qū)域變數(shù)相關(guān)的警告
incomplete-switch,抑制與switch陳述式(enum case)中遺漏項(xiàng)目相關(guān)的警告
javadoc,抑制與javadoc相關(guān)的警告
nls,抑制與非nls字串文字相關(guān)的警告
null,抑制與空值分析相關(guān)的警告
rawtypes,抑制與使用raw類型相關(guān)的警告
resource,抑制與使用Closeable類型的資源相關(guān)的警告
restriction,抑制與使用不建議或禁止參照相關(guān)的警告
serial,抑制與可序列化的類別遺漏serialVersionUID欄位相關(guān)的警告
static-access,抑制與靜態(tài)存取不正確相關(guān)的警告
static-method,抑制與可能宣告為static的方法相關(guān)的警告
super,抑制與置換方法相關(guān)但不含super呼叫的警告
synthetic-access,抑制與內(nèi)部類別的存取未最佳化相關(guān)的警告
sync-override,抑制因?yàn)橹脫Q同步方法而遺漏同步化的警告
unchecked,抑制與未檢查的作業(yè)相關(guān)的警告
unqualified-field-access,抑制與欄位存取不合格相關(guān)的警告
unused,抑制與未用的程式碼及停用的程式碼相關(guān)的警告

元注解

  • Retention 指定注解的作用范圍,三種SOURCE,CLASS,RUNTIME
  • Target 指定注解可以在哪些地方使用
  • Documented 指定該注解是否會(huì)在javadoc體現(xiàn)
  • Inherited 子類會(huì)繼承父類注解

Retention

  • RetentionPolicy.SOURCE :編譯器使用后,直接丟棄注釋
  • RetentionPolicy.CLASS: 編譯器把注解記錄在class文件中,當(dāng)運(yùn)行java時(shí)JVM不會(huì)保留注釋
  • RetentionPolicy.PUNTIME:編譯器把注解記錄在class文件中,當(dāng)運(yùn)行java時(shí)JVM保留注釋

Retention案例

@Override底層(IDEA進(jìn)入底層的快捷鍵為Ctrl+B

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)//表示@Override在編譯器使用后,直接丟棄注釋
public @interface Override {
}

Target

Target的值

@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
//   1.CONSTRUCTOR:用于描述構(gòu)造器
    2.FIELD:用于描述域
    3.LOCAL_VARIABLE:用于描述局部變量
    4.METHOD:用于描述方法
    5.PACKAGE:用于描述包
    6.PARAMETER:用于描述參數(shù)
    7.TYPE:用于描述類、接口(包括注解類型) 或enum聲明

Target案例

@Deprecated底層

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//表示@Documented在這些地方可以寫注解
public @interface Deprecated {
}

Documented

Documented案例

@Deprecated底層

@Documented//@Deprecated代碼會(huì)被保存到生產(chǎn)的文檔中
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

Inherited

被它修飾的Annotation將具有繼承性,如果某個(gè)類使用了被@Inherited修飾的Annotation,則其子類將自動(dòng)具有該注解

到此這篇關(guān)于Java注解Annotaton 的文章就介紹到這了,更多相關(guān)Java注解Annotaton 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA NIO實(shí)現(xiàn)簡單聊天室功能

    JAVA NIO實(shí)現(xiàn)簡單聊天室功能

    這篇文章主要為大家詳細(xì)介紹了JAVA NIO實(shí)現(xiàn)簡單聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 簡單談?wù)凷pringMVC轉(zhuǎn)發(fā)和重定向的區(qū)別

    簡單談?wù)凷pringMVC轉(zhuǎn)發(fā)和重定向的區(qū)別

    下面小編就為大家?guī)硪黄唵握務(wù)凷pringMVC轉(zhuǎn)發(fā)和重定向的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • SpringMVC文件上傳功能實(shí)例解析

    SpringMVC文件上傳功能實(shí)例解析

    這篇文章主要介紹了SpringMVC文件上傳功能實(shí)例解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • 分享java中設(shè)置代理的兩種方式

    分享java中設(shè)置代理的兩種方式

    有時(shí)候我們的程序中要提供可以使用代理訪問網(wǎng)絡(luò),代理的方式包括http、https、ftp、socks代理。比如在IE瀏覽器設(shè)置代理,這里簡單介紹下,需要的朋友可以參考下
    2015-12-12
  • java中CompleteFuture與Future的區(qū)別小結(jié)

    java中CompleteFuture與Future的區(qū)別小結(jié)

    本文主要介紹了java中CompleteFuture與Future的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • SpringBoot2.2.X用Freemarker出現(xiàn)404的解決

    SpringBoot2.2.X用Freemarker出現(xiàn)404的解決

    這篇文章主要介紹了SpringBoot2.2.X用Freemarker出現(xiàn)404的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Mockito如何mock靜態(tài)方法問題

    Mockito如何mock靜態(tài)方法問題

    本文介紹了如何在Mockito 3.4.0版本及以上版本中mock靜態(tài)方法,包括如何在pom文件中添加相關(guān)jar包、如何使用Mockito.mockStatic(Class mockClass)方法以及注意事項(xiàng)等
    2025-02-02
  • mybatis多對多關(guān)聯(lián)實(shí)戰(zhàn)教程(推薦)

    mybatis多對多關(guān)聯(lián)實(shí)戰(zhàn)教程(推薦)

    下面小編就為大家?guī)硪黄猰ybatis多對多關(guān)聯(lián)實(shí)戰(zhàn)教程(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫數(shù)字識(shí)別的示例詳解

    Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫數(shù)字識(shí)別的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫數(shù)字識(shí)別的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • 23種設(shè)計(jì)模式(8) java外觀模式

    23種設(shè)計(jì)模式(8) java外觀模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java外觀模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論

海南省| 丰城市| 济宁市| 饶阳县| 前郭尔| 扶风县| 奉化市| 葵青区| 云南省| 哈巴河县| 大足县| 徐汇区| 舟山市| 嘉鱼县| 巴东县| 普陀区| 荥阳市| 绩溪县| 读书| 邳州市| 手游| 鞍山市| 钟山县| 南澳县| 湖南省| 阳西县| 启东市| 聂荣县| 兴和县| 高陵县| 霸州市| 建德市| 贵定县| 七台河市| 穆棱市| 许昌市| 马龙县| 囊谦县| 丹棱县| 邹平县| 茶陵县|