欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解 Java注解及實例

 更新時間:2017年09月21日 15:12:35   作者:海那邊的小萌男  
這篇文章主要介紹了深入理解 Java注解及實例的相關(guān)資料,希望通過本文大家能夠掌握java注解的知識,需要的朋友可以參考下

 Java注解

什么是注解?

Java中的注解就是Java源代碼的元數(shù)據(jù),也就是說注解是用來描述Java源代碼的。 基本語法就是:@后面跟注解的名稱。

①Override:標識某一個方法是否正確覆蓋了它的父類的方法。
②Deprecated:表示已經(jīng)不建議使用這個類成員了。 它是一個標記注解。
③SuppressWarnings:用來抑制警告信息 等等。

要更好的理解注解,我們可以自己寫一個注解

@Target : 用來限制注解可以用到那幾個地方。比方可以用到類上,可以用到方法勝都可以用@Target來限制

@Retention:這個是用來控制注解編譯在Class中的狀態(tài)的,默認是編譯到Class里去,但是不讀出來,還有兩種狀態(tài)是 不編譯到Class里面去, 最后一種是編譯過于,并且可以通過類反射讀出來的

@Documented : 可以利用網(wǎng)絡(luò)來生成注解的

@Inherited : 子類是否能繼承注解

那么下面是我們自己寫的注解類

package cn.hncu.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

  @Inherited
  @Documented
  @Retention(RetentionPolicy.RUNTIME)
  @Target({ElementType.TYPE,ElementType.METHOD}) //目標: 限制該注解能夠用在哪些地方,如果沒定義@Target則不限制即無論哪里都可以用
  public @interface MyAnno {
    public String schoolName() default "hncu"; //注解中的成員變量要這么定義
  }

測試,學習使用

package cn.hncu.annotation;

import java.util.ArrayList;
import java.util.Collection;

@MyAnno
public class AnnotationHello {

  private String name="hncu";

  public static void main(String[] args) {
    System.out.println("hello");
  }

  @Override
  public String toString() {
    return super.toString();
  }

  @MyAnno(schoolName="大城院")
  @Deprecated
  public void abc(){
    System.out.println("abc...");
  }

  @SuppressWarnings({ "rawtypes", "unchecked" })
  public void colDemo(){
    Collection col = new ArrayList();
    col.add("aa");
  }


  //注解,只是給其它程序或代碼讀取信息的
  @MyAnno(schoolName="湖南城市學院")
  public void demo(){
    System.out.println("1111111");
  }

  @MyAnno //因為該注解中的成員變量schoolName設(shè)置了默認值,因此這里可以不賦值。若沒設(shè)置默認值,則必須要在這里賦值
  public void demo2(){
    System.out.println("1111111");
  }

  //@MyAnno("abc") //如果注解中的變量名是value,則這里可以不給出變量名
  public void demo3(){
    System.out.println("33333333333");
  }

}

通過類反射讀出來

package cn.hncu.annotation;

import java.lang.reflect.Method;

public class UseMyAnno {
  public static void main(String[] args) {
    try {
      Class c = Class.forName("cn.hncu.annotation.AnnotationHello");

      //判斷類上面是否有該注解(@MyAnno)
      boolean boo = c.isAnnotationPresent(MyAnno.class);
      System.out.println("類上是否有該注解:"+boo);

      Method ms[] = c.getDeclaredMethods();
      for(Method m: ms){
        //判斷方法上面是否有該注解(@MyAnno)
        if(m.isAnnotationPresent(MyAnno.class)){
          System.out.println("有注解的方法:"+m.getName());

          //演示讀取注解中成員變量的值----從m對象中獲取該注解,進而讀取它的成員變量的值
          MyAnno ma = (MyAnno)m.getAnnotation(MyAnno.class);
          System.out.println("學校名稱:=="+ma.schoolName());
          //獲取到了這些數(shù)據(jù)過后,下面就可以開始你的處理了
        }
      }

    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  }
}

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • SpringBoot通過Nginx代理獲取真實IP

    SpringBoot通過Nginx代理獲取真實IP

    springboot作為后臺代碼,獲取到的登錄IP是前臺的代理服務器地址,并不是用戶的真實IP地址,本文主要介紹了SpringBoot通過Nginx代理獲取真實IP,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • java如何獲取byte的高四位和低四位

    java如何獲取byte的高四位和低四位

    這篇文章主要介紹了java如何獲取byte的高四位和低四位,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 虛擬機linux中jdk安裝配置方法

    虛擬機linux中jdk安裝配置方法

    這篇文章主要為大家詳細介紹了虛擬機linux中jdk安裝配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • java WebSocket的實現(xiàn)以及Spring WebSocket示例代碼

    java WebSocket的實現(xiàn)以及Spring WebSocket示例代碼

    本篇文章主要介紹了java WebSocket的實現(xiàn)以及Spring WebSocket,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Java簡單實現(xiàn)session保存到redis的方法示例

    Java簡單實現(xiàn)session保存到redis的方法示例

    這篇文章主要介紹了Java簡單實現(xiàn)session保存到redis的方法,結(jié)合實例形式分析了Java將session存入redis緩存服務器的相關(guān)設(shè)置、實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2018-05-05
  • Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹前 中 后序遍歷

    Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹前 中 后序遍歷

    樹是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹中稱為結(jié)點)按分支關(guān)系組織起來的結(jié)構(gòu),很象自然界中的樹那樣。樹結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構(gòu)都可用樹形象表示
    2022-01-01
  • 淺談Maven環(huán)境隔離應用

    淺談Maven環(huán)境隔離應用

    這篇文章主要介紹了淺談Maven環(huán)境隔離應用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • maven插件maven-assembly-plugin打包歸納文件zip/tar使用

    maven插件maven-assembly-plugin打包歸納文件zip/tar使用

    java項目運行的文件需要jar或者war格式,同時還需要使用Java命令,本文主要介紹了maven插件maven-assembly-plugin打包歸納文件zip/tar使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • java 獲取一組數(shù)據(jù)中的最大值和最小值

    java 獲取一組數(shù)據(jù)中的最大值和最小值

    本文主要介紹了java 獲取一組數(shù)據(jù)中的最大值和最小值的方法。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Spring MVC多種情況下進行文件上傳的實例

    Spring MVC多種情況下進行文件上傳的實例

    上傳是Web工程中很常見的功能,SpringMVC框架簡化了文件上傳的代碼,本文給大家總結(jié)了Spring MVC多種情況下進行文件上傳的實例,并通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下
    2024-02-02

最新評論