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

java教程之java注解annotation使用方法

 更新時間:2014年01月28日 14:59:39   作者:  
這篇文章主要介紹了java注解annotation使用方法,注解可以定義到方法上,類上,一個注解相當與一個類,就相當于實例了一個對象,加上了注解,就相當于加了一個標志

1.概述

注解可以定義到方法上,類上,一個注解相當與一個類,就相當于實例了一個對象,加上了注解,就相當于加了一個標志。

常用的注解:
@Override:表示重新父類的方法,
這個也可以判斷是否覆蓋的父類方法,在方法前面加上此語句,如果提示的錯誤,那么你不是覆蓋的父類的方法,要是提示的沒有錯誤,那么就是覆蓋的父類的方法。
@SuppressWarnings("deprecation"):取消編譯器的警告(例如你使用的方法過時了)
@Deprecated:在方法的最上邊也上此語句,表示此方法過時,了,或者使用在類上面

復制代碼 代碼如下:

import java.util.ArrayList;
import java.util.List;
public class annotationDemo {
/*
* 對于集合,如果沒有指定存儲的類型,那么就會有安全警告,
* 如果不想提示安全警告的話,那么就所在類或者方法上添加@SuppressWarnings(參數(shù))
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
List list=new ArrayList();
}
}

2.自定義注解

1.格式
權限 @interface 注解名稱 { }
步驟:
定義注解類--->定義應用注解類的類--->對應用注解類的類進行反射的類(這個類可以另外定義,也可以是在應用注解類中進行測試)

復制代碼 代碼如下:

import java.lang.annotation.Retention;
importjava.lang.annotation.RetentionPolicy;
//定義此注解保留在字節(jié)碼中
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}
@MyAnnotation
// 應用定義的注解類
public class ApplyMyAnnotation {
public static void main(String[] args) {
if (ApplyMyAnnotation.class.isAnnotationPresent(MyAnnotation.class)) {// 判斷此類上是否存在指定的注解類
MyAnnotation annotation= (MyAnnotation) ApplyMyAnnotation.class
.getAnnotation(MyAnnotation.class);
System.out.println(annotation);
}
   }
}

2.聲明周期

格式:例如:@Retention(RetentionPolicy.CLASS)
在自定一的注解類上定義周期,@Retention(參數(shù)類型) 參數(shù)類型是RetentionPolicy
RetentionPolicy.CLASS:類文件上,運行時虛擬機不保留注解
RetentionPolicy.RUNTIME:類文件上,運行時虛擬就保留注解
RetentionPolicy.SOURCE:源文件上,丟棄注解
SuppressWarnings和Override是RetentionPolicy.SOURCE,
Deprecated是在RetentionPolicy.RUNTIME,要向運行時調(diào)用定義的一樣,那么必須是RetentionPolicy.RUNTIME,
默認的都是RetentionPolicy.CLASS:

3.指定目標
格式:例如:方法上@Target(ElementType.METHOD)
定義的注解可以注解什么成員。如果不聲明此注解,那么就是可以放到任何程序的元素上。
可以是包,接口,參數(shù),方法,局部變量,字段…等。

復制代碼 代碼如下:

//定義此注解保留在字節(jié)碼中
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})//可以定義在方法上和類上接口,表示類型
public @interface MyAnnotation {
}
@MyAnnotation
// 應用定義的注解類
public class ApplyMyAnnotation {
@MyAnnotation//定義在方法上
public static void main(String[] args) {
if (ApplyMyAnnotation.class.isAnnotationPresent(MyAnnotation.class)) {// 判斷此類上是否存在指定的注解類
MyAnnotation annotation = (MyAnnotation) ApplyMyAnnotation.class
.getAnnotation(MyAnnotation.class);
System.out.println(annotation);
}
}
}

3.為注解添加屬性
1.類型
注解的屬性置可以是:8個基本數(shù)據(jù)類型,String,枚舉,注解,Class,數(shù)組類型,
2.注意點
當注 解中只有一個屬性或者是只有一個屬性需要賦值的話,那么在調(diào)用的時候,就可以直接寫入,不需要指定屬性名,
當注解的屬性是數(shù)組類型并且賦值的時候只賦值一個值,那么就可以省略{}.
3.示例
3.1.屬性類型(是String)

復制代碼 代碼如下:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.*;
//定義此注解保留在字節(jié)碼中
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() ;
String Color()default "red";//設置默認值是"red"
}
@MyAnnotation("java")
public class ApplyMyAnnotation {
public static void main(String[] args) {
/**
* 這是獲得類上的注解,也可以獲得方法上的注解,下面就以獲得類上的注解為例
*/
if (ApplyMyAnnotation.class.isAnnotationPresent(MyAnnotation.class)) {// 判斷此類上是否存在指定的注解類
MyAnnotation annotation = (MyAnnotation) ApplyMyAnnotation.class
.getAnnotation(MyAnnotation.class);
System.out.println("value="+annotation.value());
System.out.println("Color="+annotation.Color());
}
}
  }

結(jié)果:
value=java
Color=red
從調(diào)用的程序中,也可以看出,只有一個屬性可以需要賦值的話,可以省略屬性名。否則@注解類(屬性名=值)
3.2.綜合類型

復制代碼 代碼如下:

/*枚舉類*/
public enum Week{
SUN,MON;
}
/**
* 注解類
*/
public @interface annotationText {
String value();
}
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.*;
//定義此注解保留在字節(jié)碼中
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() ;
String Color()default "red";//設置默認值是"red"
Week week() default Week.MON;//枚舉類型
int [] array() default {1,2,3};//數(shù)組類型
annotationText annotation() default @annotationText("MY");//注解類型
Class classDemo() default Integer.class;//Class類型
}
@MyAnnotation(value="java",Color="green",week=Week.SUN,array=5,annotation=@annotationText("YOU"),classDemo=String.class)//數(shù)組array={4,5,6}
public class ApplyMyAnnotation {
public static void main(String[] args) {
/**
* 這是獲得類上的注解,也可以獲得方法上的注解,下面就以獲得類上的注解為例
*/
if (ApplyMyAnnotation.class.isAnnotationPresent(MyAnnotation.class)) {// 判斷此類上是否存在指定的注解類
MyAnnotation annotation= (MyAnnotation) ApplyMyAnnotation.class
.getAnnotation(MyAnnotation.class);
System.out.println("value="+annotation.value());
System.out.println("Color="+annotation.Color());
System.out.println("week="+annotation.week());
System.out.println("array長度="+annotation.array()。length);
System.out.println("注解類型值="+annotation.annotation()。value());
System.out.println("Class類型值="+annotation.classDemo());
}
}
}

 結(jié)果:
 

復制代碼 代碼如下:

value=java
Color=green
week=SUN
array長度=1
注解類型值=YOU
Class類型值=classjava.lang.String

4.Method上的注解

復制代碼 代碼如下:

importjava.lang.annotation.Retention;
importjava.lang.annotation.RetentionPolicy;
/**
*注解類
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface annotationText{
Stringvalue();
}
publicclassApplyMyAnnotation{
publicstaticvoidmain(String[]args)throwsException{
Methodmethodshow=ApplyMyAnnotation.class.getMethod("show");
annotationTextanno=methodshow.getAnnotation(annotationText.class);
System.out.println(anno.value());
}
@annotationText("java")
publicvoidshow(){
System.out.println("hello");
}
}

結(jié)果:java

相關文章

  • 前后端分離跨域springBoot跨域有效解決問題

    前后端分離跨域springBoot跨域有效解決問題

    這篇文章主要介紹了前后端分離跨域springBoot跨域有效解決問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java?Bluetooth?藍牙通訊?BlueCove?掃描附近的藍牙設備(測試代碼)

    Java?Bluetooth?藍牙通訊?BlueCove?掃描附近的藍牙設備(測試代碼)

    BlueCove是一個開源的藍牙協(xié)議棧實現(xiàn),旨在為Java開發(fā)者提供一個全面的、易于使用的API,從而在應用程序中實現(xiàn)藍牙功能,該項目支持多種操作系統(tǒng),這篇文章主要介紹了Java?Bluetooth?藍牙通訊?BlueCove?掃描附近的藍牙設備,需要的朋友可以參考下
    2025-01-01
  • Jenkins安裝與配置及漢化過程

    Jenkins安裝與配置及漢化過程

    這篇文章主要介紹了Jenkins安裝與配置及漢化過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java利用Picocli開發(fā)一個簡化命令行工具

    Java利用Picocli開發(fā)一個簡化命令行工具

    Picocli 是一個強大、易用且功能豐富的 Java 庫,用于開發(fā)命令行工具,本文我們就來為大家介紹一下Java如何利用Picocli進行命令行簡化功能的吧
    2025-03-03
  • Java Map遍歷2種實現(xiàn)方法代碼實例

    Java Map遍歷2種實現(xiàn)方法代碼實例

    這篇文章主要介紹了Java Map遍歷2種實現(xiàn)方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • java讀取excel圖片導入代碼示例(親測有效)

    java讀取excel圖片導入代碼示例(親測有效)

    在日常工作中,我們經(jīng)常要將一些照片插入到Excel表格中,這篇文章主要給大家介紹了關于java讀取excel圖片導入的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    這篇文章主要介紹了Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法,結(jié)合實力形式分析了質(zhì)因數(shù)分解的原理與實現(xiàn)方法,涉及java數(shù)值運算相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • java 服務器接口快速開發(fā)之servlet詳細教程

    java 服務器接口快速開發(fā)之servlet詳細教程

    Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務程序或服務連接器,用Java編寫的服務器端程序,具有獨立于平臺和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動態(tài)Web內(nèi)容
    2021-06-06
  • java實戰(zhàn)小技巧之優(yōu)雅的實現(xiàn)字符串拼接

    java實戰(zhàn)小技巧之優(yōu)雅的實現(xiàn)字符串拼接

    字符串拼接是我們在Java代碼中比較經(jīng)常要做的事情,就是把多個字符串拼接到一起,這篇文章主要給大家介紹了關于java實戰(zhàn)小技巧之優(yōu)雅的實現(xiàn)字符串拼接的相關資料,需要的朋友可以參考下
    2021-08-08
  • java讀取簡單excel通用工具類

    java讀取簡單excel通用工具類

    這篇文章主要為大家詳細介紹了java讀取簡單excel通用工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論

沈丘县| 贵溪市| 苏尼特左旗| 宿松县| 肇庆市| 蓬莱市| 嘉峪关市| 嘉善县| 昭觉县| 隆化县| 左权县| 阜新市| 平乡县| 和顺县| 城步| 汾西县| 屏东县| 临夏县| 瑞昌市| 娄底市| 霍林郭勒市| 常州市| 浠水县| 邯郸市| 泸溪县| 杭锦后旗| 吴川市| 五原县| 禹城市| 云阳县| 桦甸市| 大竹县| 濮阳县| 延庆县| 涡阳县| 黄大仙区| 鄂托克旗| 萍乡市| 高密市| 隆林| 太原市|