亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java中三種簡單注解介紹和代碼實例

2019-11-26 15:25:36
字體:
來源:轉載
供稿:網友

簡單Java注解

JDK5提供的簡單注解類型只有3個. 這三個都是用來預防錯誤或者進行提醒的,分別是:

1.Override
2.Deprecated
3.Suppresswarnings

需要注意,JDK5(另一個說法,Tiger)實際上并沒有許多內置注解;相反,它允許核心Java支持注解特性的能力. JSR-175中嚴格規定它用來定義元數據功能. 需要由程序員編寫自定義的注解類型,其他JSR標準也編寫了一系列標準注解類型. 下面將用實例來深入講解這三個簡單注解.

Override 注解

Override 注解指明被注解的方法需要覆寫超類中的方法.

如果某個方法使用了該注解,卻沒有覆寫超類中的方法(比如大小寫寫錯了,或者參數錯了,或者是子類自己定義的方法),編譯器就會生成一個錯誤.

(注意: JRE5中實現接口中的方法時不能使用Override注解,JRE6允許了,很多時候JRE5會報這個錯).

示例1演示了覆寫注解:

Java注解示例1:

復制代碼 代碼如下:

public class Test_Override {
 @Override
 public String toString() {
    return super.toString() + "測試使用 'Override' 注解";
 }
}

如果出現方法名字拼寫錯誤會發生什么? 例如,如果你將toString方法改名為"tostring"(全小寫),編譯時就會得到類似下面這樣的出錯信息:

復制代碼 代碼如下:

Compiling 1 source file to D:tempNew Folder (2)
                              TestJavaApplication1buildclasses
D:tempNew Folder (2)TestJavaApplication1srctest
   myannotationTest_Override.java:24: method does not override
                a method from its superclass
@Override
1 error
BUILD FAILED (total time: 0 seconds)

當然,Eclipse就會直接報紅叉.現在IDE發展的很好用,初學者不應該去折騰JDK的命令行了.

Deprecated 注解

這個注解表明如果程序調用一個廢棄的(Deprecated,廢棄的,過時的)元素時,編譯器應該顯示警告信息. 示例2顯示了如何使用Deprecated 注解.

Java注解示例2

首先,創建一個類,并像下面這樣將某個方法標明為 廢棄:

復制代碼 代碼如下:

public class Test_Deprecated {
   @Deprecated
   public void doSomething() {
      System.out.println("測試使用 棄用 注解: 'Deprecated'");
   }
}

接著,嘗試從另一個類調用這個方法:

復制代碼 代碼如下:

public class TestAnnotations {
   public static void main(String arg[]) throws Exception {
      new TestAnnotations();
   }
   public TestAnnotations() {
   Test_Deprecated t2=new Test_Deprecated();
   t2.doSomething();
}

本例中的doSomething()方法被聲明為廢棄的方法. 因此,一般情況下不應該調用這個方法. 在編譯Test_Deprecated.java 文件時是不會有警告消息的. 但在編譯 TestAnnotations.java 時編譯器就會給出類似這樣的警告信息(Eclipse 會有警告):

復制代碼 代碼如下:

Compiling 1 source file to D:tempNew Folder
(2)TestJavaApplication1buildclasses
D:tempNew Folder
(2)TestJavaApplication1srctestmyannotation
    TestAnnotations.java:27:
warning: [deprecation] doSomething() in
test.myannotation.Test_Deprecated has been deprecated
t2.doSomething();
1 warning

Suppresswarnings 注解

這個注解告訴編譯器應該屏蔽帶注解的元素和所有子元素的警告信息. 會壓制一個元素集和子元素的所有警告信息. 比如,假設你在一個class上使用了Suppresswarnings 注解壓住一個警告,在它的一個方法上用Suppresswarnings 注解來壓制另一個警告,則兩種警告都會在方法級別被壓制住. 請參見示例3.

Java注解示例3:

復制代碼 代碼如下:

public class TestAnnotations {
   public static void main(String arg[]) throws Exception {
      new TestAnnotations().doSomeTestNow();
   }
   @SuppressWarnings({"deprecation"})
   public void doSomeTestNow() {
      Test_Deprecated t2 = new Test_Deprecated();
      t2.doSomething();
   }
}

在本例中,使用 @SuppressWarnings壓住了示例2中所示的deprecation警告信息. 因為該方法的這類警告被壓住了,所以你不會再看到"deprecation"警告.

注意: 在最內層的元素上使用該注解是比較好的. 因此,如果你只想在一個特定的方法上壓制一個警告,你應該在方法上標注,而不是在類上使用注解.

元注解(Meta-Annotations,Java注解類型)

元注解,實際上被稱為注解的注解,包含四種類型. 分別是:

1.Target
2.Retention
3.Documented
4.Inherited

Target 注解

Target注解表明注解類型適用于哪種目標元素. 它包含下面的枚舉類型值:

1.@Target(ElementType.TYPE)  ―― 可以適用于任何類的元素
2.@Target(ElementType.FIELD)  ―― 只適用于字段或屬性
3.@Target(ElementType.METHOD)  ―― 只適用于方法的注解
4.@Target(ElementType.PARAMETER)  ―― 只適用于方法的參數
5.@Target(ElementType.CONSTRUCTOR) ―― 只適用于構造函數
6.@Target(ElementType.LOCAL_VARIABLE) ―― 只適用于局部變量
7.@Target(ElementType.ANNOTATION_TYPE) ―― 指明聲明類型本身是一個注解類型

示例4演示了Target 注解:

Java注解示例4

首先,定義了一個名為Test_Target的注解類型,帶上 @Target元注解,如下所示:

復制代碼 代碼如下:

@Target(ElementType.METHOD)
public @interface Test_Target {
   public String doTestTarget();
}

接下來,創建一個類,它將使用Test_Target注解:

復制代碼 代碼如下:

public class TestAnnotations {
   public static void main(String arg[]) {
      new TestAnnotations().doTestTarget();
   }
   // 在方法上使用注解,OK.
   // 中間也可以不換行,換2行之類,Java忽略多余的換行
   @Test_Target(doTestTarget="Hello World !")
   public void doTestTarget() {
      System.out.printf("Testing Target annotation");
   }
}

@Target(ElementType.METHOD) 注解表明該注解類型只能被用來注解方法. 如果你編譯這段代碼,不會顯示警告消息. 但是,如果將這個注解聲明到一個字符串變量上,會發生什么呢? 就像下面這樣:

復制代碼 代碼如下:

public class TestAnnotations {
   // 這是錯誤的做法,編譯不會通過,因為注解的Level不對.
   // 元注解指明了只能注解方法,就不能用來注解屬性
   @Test_Target(doTestTarget="Hello World !")
   private String str;
   public static void main(String arg[]) {
      new TestAnnotations().doTestTarget();
   }
   public void doTestTarget() {
      System.out.printf("Testing Target annotation");
   }
}

唯一的變化就是注解聲明從方法級轉向字段級,這是不正確的. 因為你已經定義了注解   @Test_Target 只適用在方法級,如果你嘗試編譯這個類,你可能會得到這樣的錯誤信息:

復制代碼 代碼如下:

"TestAnnotations.java":
D:R_AND_DTestAnnotationsrctestmyannotation
   TestAnnotations.java:16:
annotation type not applicable to this kind of declaration at line
16, column 0
@Test_Target(doTestTarget="Hello World !")
^
Error in javac compilation

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲理论在线a中文字幕| 68精品国产免费久久久久久婷婷| 亚洲人成电影在线播放| 久久精品国产69国产精品亚洲| 久久久亚洲福利精品午夜| 亚洲国产成人在线视频| 欧美在线视频播放| 国产精品网站入口| 欧美午夜电影在线| 国产一区二区三区视频| 久久国产视频网站| 欧美大学生性色视频| 91在线观看免费网站| 2018国产精品视频| 国产精品视频精品| 精品在线欧美视频| 欧美精品videosex性欧美| 日韩精品在线免费播放| 亚洲精品视频在线观看视频| 久久免费少妇高潮久久精品99| 亚洲国产成人av在线| 中文字幕在线亚洲| 亚洲福利视频专区| 中文字幕久久久| 91啪国产在线| 亚洲成人激情图| www亚洲欧美| 久久琪琪电影院| 亚洲a∨日韩av高清在线观看| 理论片在线不卡免费观看| 成人中心免费视频| 日韩在线观看精品| 在线观看不卡av| 久久影院在线观看| 中文字幕一区二区精品| 国产精品都在这里| 777精品视频| 久久久久久国产精品美女| 亚洲欧美日韩国产中文专区| 中文字幕欧美精品在线| 国产精品爱久久久久久久| 国产欧美日韩中文字幕| 91欧美精品午夜性色福利在线| 亚洲综合自拍一区| 中文字幕v亚洲ⅴv天堂| 欧美激情xxxxx| 久久国产精品久久久| 色樱桃影院亚洲精品影院| 久久久久久69| 欧美亚洲成人精品| 精品久久久久人成| 亚洲免费一级电影| 日韩电影中文字幕av| 精品久久久在线观看| 亚洲色图日韩av| 亚洲国产精品99| 欧美电影院免费观看| 91免费国产视频| 国产91|九色| 91久久久久久久久久久久久| 91亚洲精品在线| 欧美成人精品在线视频| 国产精品91在线| 欧美乱妇高清无乱码| 国产欧美久久一区二区| 91高清视频在线免费观看| 国产精品免费视频xxxx| 欧美高跟鞋交xxxxxhd| 欧美午夜美女看片| 久久久人成影片一区二区三区| 亚洲色图第一页| 久久精品2019中文字幕| 国产69精品久久久久9999| 国产精品美女呻吟| 日韩视频免费大全中文字幕| 在线播放日韩欧美| 成人免费网站在线观看| 国产91露脸中文字幕在线| 精品女同一区二区三区在线播放| 日本免费一区二区三区视频观看| 日韩精品www| 欧美激情精品久久久久| 中文字幕综合在线| 伊人久久久久久久久久| 日本欧美国产在线| 久久久久久久成人| 91情侣偷在线精品国产| 久久精品电影网| 福利精品视频在线| 欧美影院成年免费版| 欧美视频第一页| 国产精品美女无圣光视频| 亚洲国产成人精品电影| 亚洲精品视频播放| 国产日韩欧美影视| 亚洲一区二区三区四区在线播放| 亚洲色图17p| 91亚洲国产成人久久精品网站| 久久久久久久久久久av| 国产伦精品一区二区三区精品视频| 国产亚洲xxx| 综合久久五月天| 成人福利免费观看| 国产精品久久久久久网站| 91久久久久久| 欧美富婆性猛交| 日韩经典一区二区三区| 亚洲欧洲高清在线| 性夜试看影院91社区| 日韩女优在线播放| 亚洲一区二区三区视频| 国产日本欧美视频| 日韩资源在线观看| 揄拍成人国产精品视频| 国模私拍视频一区| 91午夜理伦私人影院| 不卡在线观看电视剧完整版| 黄网动漫久久久| 最近的2019中文字幕免费一页| 久久五月天综合| 在线观看国产精品淫| 日韩风俗一区 二区| 色偷偷噜噜噜亚洲男人| 国产综合视频在线观看| 国产91在线播放| 日韩成人网免费视频| 久久av在线看| 国产亚洲精品日韩| 国产精品久久久久久久美男| 欧美在线欧美在线| 在线观看久久av| 91免费在线视频| 亚洲第一中文字幕| 欧美一级片一区| 欧美国产高跟鞋裸体秀xxxhd| 欧美激情2020午夜免费观看| 北条麻妃一区二区三区中文字幕| 成人免费高清完整版在线观看| 日韩在线免费视频观看| 成人女保姆的销魂服务| 亚洲欧美日韩直播| 亚洲成人激情图| 亚洲综合日韩在线| 国产日韩一区在线| 久久久亚洲精品视频| 亚洲黄色免费三级| 欧美大片在线看免费观看| 日韩有码在线视频| 91免费视频网站| 在线观看国产精品日韩av| 欧美一级大胆视频| 久久久黄色av| 欧美成人精品在线观看| 亚洲综合在线播放| 亚洲欧美激情视频| 久久夜色精品国产| 超碰精品一区二区三区乱码| 一区二区三区回区在观看免费视频| 成人黄色短视频在线观看| 97色在线视频| 亚洲va欧美va国产综合剧情| 亚洲国产美女久久久久| 久久影视电视剧免费网站清宫辞电视| 一区二区欧美激情|