1. 程式人生 > >Enum列舉類|註解Annotation

Enum列舉類|註解Annotation

Enum列舉類

①列舉類和普通類的區別:
使用 enum 定義的列舉類預設繼承了 java.lang.Enum 類
列舉類的構造器只能使用 private 訪問控制符
列舉類的所有例項必須在列舉類中顯式列出(, 分隔    ; 結尾). 列出的例項系統會自動新增 public static final 修飾

②JDK 1.5 中可以在 switch 表示式中使用Enum定義的列舉類的物件作為表示式,
case 子句可以直接使用列舉值的名字, 無需新增列舉類作為限定

③列舉類的主要方法:
values()方法:返回列舉型別的物件陣列。該方法可以很方便地遍歷所有的列舉值。
valueOf(String str):可以把一個字串轉為對應的列舉類物件。要求字串必須是列舉類物件的“名字”。
如不是,會有執行時異常

註解Annotation

①JDK內建的基本註解型別(3個)
 @Override: 限定重寫父類方法, 該註釋只能用於方法
 @Deprecated: 用於表示某個程式元素(類, 方法等)已過時
 @SuppressWarnings: 抑制編譯器警告

②自定義註解型別

定義新的 Annotation 型別使用 @interface 關鍵字
Annotation 的成員變數在 Annotation 定義中以無引數方法的形式來宣告. 其方法名和返回值定義了該成員的名字和型別.
可以在定義 Annotation 的成員變數時為其指定初始值, 指定成員變數的初始值可使用 default 關鍵字
public @interface MyAnnotation{
        String name() default “wzg";
        }
沒有成員定義的 Annotation 稱為標記; 包含成員變數的 Annotation 稱為元資料 Annotation

③對註解進行註解(4個)
@Retention: 只能用於修飾一個 Annotation 定義, 用於指定該 Annotation 可以保留多長時間,
@Rentention 包含一個 RetentionPolicy 型別的成員變數, 使用 @Rentention 時必須為該 value 成員變數指定值:

RetentionPolicy.SOURCE: 編譯器直接丟棄這種策略的註釋
RetentionPolicy.CLASS: 編譯器將把註釋記錄在 class 檔案中. 當執行 Java 程式時, JVM 不會保留註解。 這是預設值
RetentionPolicy.RUNTIME:編譯器將把註釋記錄在 class 檔案中. 當執行 Java 程式時, JVM 會保留註釋. 程式可以通過反射獲取該註釋

@Target: 用於修飾 Annotation 定義, 用於指定被修飾的 Annotation 能用於修飾哪些程式元素. @Target 也包含一個名為 value 的成員變數.

@Documented: 用於指定被該元 Annotation 修飾的 Annotation 類將被 javadoc 工具提取成文件.
定義為Documented的註解必須設定Retention值為RUNTIME。

@Inherited: 被它修飾的 Annotation 將具有繼承性.如果某個類使用了被 @Inherited 修飾的 Annotation, 則其子類將自動具有該註解
實際應用中,使用較少

利用反射獲取註解資訊(在反射部分涉及)



相關推薦

Enum列舉|註解Annotation

Enum列舉類 ①列舉類和普通類的區別: 使用 enum 定義的列舉類預設繼承了 java.lang.Enum 類 列舉類的構造器只能使用 private 訪問控制符 列舉類的所有例項必須在列舉類中顯式列出(, 分隔    ; 結尾). 列出的例項系統會自動新增 publi

Enum列舉的學習筆記

小案例:        你寫了一個小程式,不過好久不用了,突然有一天,你想使用一下它。程式要想正確執行,需要將今天星期幾存到資料庫裡。這個時候,你開始犯難了。 當初的你還很年輕,不懂程式界的險惡,設計這個程式的時候,傻不拉幾把這個欄位設計為int型別的,用0

Enum列舉

Eum列舉類的理解與使用/** * 列舉類: * 1.列舉類其實就是相當於自給自足 * 將構造方法設為私有的,自己類內部建立列舉物件,並且為成員變數賦值。最後將物件設定靜態常量 * 等我們需要的時候通過    類名.物件名.get方法     將需要的成員屬性值獲取到 * 總

enum列舉的一個簡單例子

  定義一個列舉類: public enum Time { // 通過構造方法給常量傳值 DATE1("2016-6-26 12:14:10"), DATE2("2016-6-26 12:14:10"), DATE3("2016-6-26 12:14:10"), DATE4("2016-6-2

Java Enum列舉學習

    列舉類是一個特殊的類,這個類的例項物件是有限的而且是固定的,在定義列舉類的時候就已經生成,不可增加。比如一年四季,只有四個固定的物件。主要區別如下: 1. 列舉類可以實現一個或者多個介面,使用enum定義的列舉類預設繼承java.lang.Enum類,而不是繼承ja

Java列舉&註解

JDK的元Annotation用於修飾其他Annotation定義。 JDK5.0提供了專門在註解上的註解型別,分別是: -->@Retention :只能用於修飾一個Annotation定義,用於指定該Annotation可以保留多長時間,@Retention包含一個RetentionPolicy

深入Java Enum列舉

在比較兩個列舉型別的值時,永遠不需要呼叫 equals,而直接使用 ==就可以了。 我們可以在列舉型別中新增一些構造器、方法和域。構造器只是在構造列舉常量的時候被呼叫。 所有的列舉型別都是 Enum

Android進階之將註解@IntDef @StringDef替代列舉enum

1 概述 Enum是java中一種包含固定常數的型別。當我們需要預先定義一些值,並限定範圍時,使用 Enum,來做到編寫和編譯都查錯。   Java的Enum的實質是特殊單例的靜態成員變數,可以在編寫器,編譯器做到各種靜態檢查防呆;在執行期,所有列舉類作為單例,全部載入到記憶體中。   

快速學習JAVA列舉(ENUM)

概述 enum的全稱為enumeration, 是 JDK 1.5中引入的新特性,存放在 java.lang包中。在某些情況下,一個類的物件是固定的,就可以定義為列舉。在實際使用中,列舉型別也可以作為一種規範,保障程式引數安全。 特點 Java中列舉和類、介面的級別相

關於JAVA列舉Enum方法

1.列舉類入門 Java列舉類是從Java5開始支援的。 列舉類的構造方法是用private修飾的。列舉類的所有例項必須在類的第一行列出,否則這個列舉類不會產生物件。 而且這些例項都是public static void. 每個列舉類都有一個values

C++之——列舉 enum class var_name{string1,string2,string3}

#include <iostream> using namespace std; int main() { enum class Case { case1, case2, case3 };

工具列舉enum

使用場景:對離散量進行表示表示或者是轉化時。 列舉(enum),是指一個經過排序的、被打包成一個單一實體的項列表。一個列舉的例項可以使用列舉項列表中任意單一項的值。 注意: Java中一個列舉就是一個類

Spring 用註解Annotation注入 abstract 抽象父的屬性

問題: 希望把子類公共的屬性放在抽象類中。執行時,希望在Spring 掃描@Component註解,自動載入子類的同時,自動注入抽象父類的屬性。 抽象父類: @Component public abstract class BaseCar {   @Autowired

列舉enum的values()方法

關於列舉,相信使用的已經很普遍了,現在主要寫的是列舉中的一個特殊方法,values(), 為什麼說特殊呢,因為在Enum 的 API 文件中也找不到這個方法。接下來就看看具體的使用。     理論上此方法可以將列舉類轉變為一個列舉型別的陣列,因為列舉中沒有下標,我們沒有辦法通

重新認識java(十) ---- Enum列舉

有的人說,不推薦使用列舉。有的人說,列舉很好用。究竟怎麼使用,如何使用,仁者見仁智者見智。總之,先學會再說~ 為什麼要引入列舉類 一個小案例 你寫了一個小程式,不過好久不用了,突然有一天,你想使用一下它。程式要想正確執行,需要將今天星期幾存

【C/C++開發】C++之enum列舉量宣告、定義、使用與列舉詳解與列舉前置型別宣告

前面講到可以通過強制轉換將其他型別值賦給列舉變數:Weekday = enumType(2);這是合法的;但是Weekday = enumType(20);是非法的。這裡涉及列舉取值範圍的概念:列舉的上限是 大於最大列舉量的 最小的2的冪,減去1; 列舉的下限有兩種情況:一、列舉量的最小值不小於0,則列

【ssm框架】列舉Enum的應用

通常我們會用一個布林值來表示狀態,比如0表示不通過,1表示通過,然而,許多時候狀態並不只有兩種,比如在系統中表示畢業論文的答辯狀態,通常有正常答辯,爭優答辯,延期答辯3種,在資料庫中我們使用的是整數來儲存,0表示正常答辯,2表示爭優答辯,4表示延期答辯,那麼如何實現這種對應關係呢? &nbs

JAVA 與 MyCat(5) 的載入 Java內省/反射機制 註解Annotation 詳解

通過mycat來學習java了^^。 上一篇瞭解了XML解析的四種方式,並對MyCat的原始碼進行了修改,這一篇接著往下看: dtd = XMLRuleLoader.class.getResourceAsStream(dtdFile); x

設計模式(一):單例模式 JVM載入機制 JDK原始碼學習筆記——Enum列舉使用及原理 Java併發(七):雙重檢驗鎖定DCL Java併發(二):Java記憶體模型 Java併發(二):Java記憶體模型 Java併發(七):雙重檢驗鎖定DCL JDK原始碼學習筆記——Enum列舉使用及原理

單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許一個例項存在。 單例模式一般體現在類宣告中,單例的類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,不需要例項化該類的物件。 適用場合: 需要頻繁的進行建立和銷燬的物件; 建立物

effective java 第6章 列舉註解 第30條 用enum代替int常量

列舉是什麼?        列舉型別是指由一組固定的常量組成合法值的型別。列舉型別是解決常量int的另一種解決方案。 列舉型別的簡單示例: public enum AlarmPoints {STAIR1,STAIR2,LOBBY,OFFICE1,OFFICE2,OFFI