java参数注解pam_吃透Java基础十:注解
一、什么是注解
官方定義:
注解是一系列元數據,它提供數據用來解釋程序代碼,但是注解并非是所解釋的代碼本身的一部分。注解對于代碼的運行效果沒有直接影響。
注解有許多用處,主要如下:
- 提供信息給編譯器:編譯器可以利用注解來探測錯誤和警告信息。
- 編譯階段時的處理:軟件工具可以用來利用注解信息來生成代碼、Html文檔或者做其它相應處理。
- 運行時的處理:某些注解可以在程序運行的時候接受代碼的提取
值得注意的是,注解不是代碼本身的一部分。
我們通俗一點理解就是:注解就相當于超市里面商品的標簽,它不屬于商品,它只是為商品做一些解釋說明,而注解就是為我們的代碼作解釋說明,并不屬于我們代碼本身的部分。
二、注解的使用
JDK中提供的注解*
JDK里面提供的幾個注解
- @Override: java.lang.Override 是一個標記類型注解,它被用作標注方法。它說明了被標注的方法重載了父類的方法,起到了斷言的作用。如果我們使用了這種注解在一個沒有覆蓋父類方法的方法時,java 編譯器將以一個編譯錯誤來警示。
- @Deprecated:表示該方法已經過時了。(當方法或是類上面有@Deprecated注解時,說明該方法或是類都已經過期不能再用,但不影響以前項目使用,提醒你新替代待的方法或是類。如果程序員不小心使用了它的元素,那么編譯器會發出警告信息。)
- @SuppressWarnings:表示忽略指定警告,比如@SuppressWarnings("Deprecation")
- @SafeVarargs:參數安全類型注解。它的目的是提醒開發者不要用參數做一些不安全的操作,它的存在會阻止編譯器產生 unchecked 這樣的警告。它是在 Java 1.7 的版本中加入的。
- @FunctionalInterface:函數式接口注解,這個是 Java 1.8 版本引入的新特性。
元注解
java.lang.annotation 提供了四種元注解,專門注解其他的注解(在自定義注解的時候,需要使用到元注解)。
- @Retention:定義該注解的生命周期。
RetentionPolicy.SOURCE:注解只在源碼階段保留,在編譯器進行編譯時它將被丟棄忽視。
RetentionPolicy.CLASS:注解只被保留到編譯進行的時候,它并不會被加載到 JVM 中。
RetentionPolicy.RUNTIME:注解可以保留到程序運行的時候,它會被加載進入到 JVM 中,所以在程序運行時可以獲取到它們。
- @Target:表示該注解用于什么地方。默認值為任何元素,表示該注解用于什么地方。可用的ElementType 參數包括:
ElementType.CONSTRUCTOR: 用于描述構造器。
ElementType.FIELD: 成員變量、對象、屬性(包括enum實例)。
ElementType.LOCAL_VARIABLE: 用于描述局部變量。
ElementType.METHOD: 用于描述方法。
ElementType.PACKAGE: 用于描述包。
ElementType.PARAMETER: 用于描述參數。
ElementType.TYPE: 用于描述類、接口(包括注解類型) 或enum聲明。
- @Documented:一個簡單的Annotations 標記注解,表示是否將注解信息添加在java 文檔中。
- @Inherited :表示當前注解可以由子注解來繼承。
- @Repeatable:是可重復的意思,Java 1.8 才加進來的,指的是注解的值可以同時取多個。
自定義注解
- Annotation型定義為@interface,所有的Annotation 會自動繼承java.lang.Annotation這一接口,并且不能再去繼承別的類或是接口。
- 參數成員只能用public 或默認這兩個訪問權修飾,可以用default設置默認值。也可以不定義成員。
- 參數成員只能用基本類型byte、short、char、int、long、float、double、boolean八種基本數據類型和String、Enum、Class、annotations等數據類型,以及這一些類型的數組。
- 要獲取類方法和字段的注解信息,必須通過Java的反射技術來獲取 Annotation 對象,因為你除此之外沒有別的獲取注解對象的方法
注解經典運用
運行期利用反射可以獲取注解:詳情請移步[吃透Java基礎六:反射](https://blog.csdn.net/u013277209/article/details/102782208)
注解+反射 在數據庫框架方面的應用:
有一張用戶表,包含id name age gender 對每一個字段進行檢索并打印出Sql語句
1、自定義Table和Column注解
2、編寫User類
3、利用反射獲取注解信息,實現Sql語句查詢
運行輸出:
總結
以上是生活随笔為你收集整理的java参数注解pam_吃透Java基础十:注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作 mysql的rpm文件_自制mys
- 下一篇: java中的多态与继承_【Java学习笔