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