在JAVA中如何根據列舉索引值來獲取列舉值(範型適用)
我們知道在JAVA編寫一個列舉類之後,在呼叫時系統就會自動給它生成一個values()的陣列,通過這個陣列就可按索引獲取列舉值
但是如果我們宣告的是一個列舉的範型類呢?我們知道所有的JAVA列舉類,其實都是繼承Enum類的,然而Enum只有一個靜態的方法valueOf(),用於把字串轉化成列舉值。可是如果想把索引值轉化成列舉值呢,怎麼辦?
咋一看,Enum下面似乎真的沒有這麼一個方法可以讓你實現這個需求。現在我們想回開頭說的那個values()陣列,它的真身其實就是:Class類下面的getEnumConstants()!於是這個需求就輕鬆解決了:
列舉類.class.getEnumConstants()[列舉索引]
相關推薦
在JAVA中如何根據列舉索引值來獲取列舉值(範型適用)
我們知道在JAVA編寫一個列舉類之後,在呼叫時系統就會自動給它生成一個values()的陣列,通過這個陣列就可按索引獲取列舉值 但是如果我們宣告的是一個列舉的範型類呢?我們知道所有的JAVA列舉類,其實都是繼承Enum類的,然而Enum只有一個靜態的方法valueOf(),用於把字串轉化成列舉值。可
JAVA 中類如何只實例化一次(單例模式)
回來 記錄 實例 static ret clas 實例化 best pub 以前只運用過單例模式,但是沒有具體的了解過單例模式的含義,今天去面試讓一下一個類只實例化一次,想了好久沒想出來,回來查了資料才知道是單例模式,記錄下來。public class Singleton
在go modules中使用replace替換無法直接獲取的package(golang.org/x/...)
報錯 href 操作 ast med tag 無法 獲取 技術分享 上一篇裏我們介紹了使用go get進行包管理。 不過因為某些未知原因,並不是所有的包都能直接用go get獲取到,這時我們就需要使用go modules的replace功能了。(當然大部分問題掛個梯子就能解
Java中的基本資料型別、型別轉換規則(自動、強制)、原反補碼、使用者自定義識別符號
基本資料型別 資料型別指明瞭變數和表示式的狀態和行為。 基本資料型別 關鍵字 記憶體中佔用位元組數 取值範圍 布林型 boolean 1位元組(8bit)
Java中迭代器Iterator的使用Collection介面(list和set)和Map介面中
Java集合類中Map介面下的相關類並沒有像Collection介面的相關類一樣實現get()方法,因此在要實現遍歷輸出的場景中沒法直接用get()方法來取得物件中的資料,但Java本身提供了另一種遍歷資料的方法,即用Iterator迭代器,雖然Iterator可以用來遍歷讀取資料,但它本質上不是一種方法,它
MySQL中根據if標籤實現多條件模糊查詢(動態SQL語句)
if標籤 if標籤可用在許多型別的sql語句中,我們以查詢為例。首先看一個很普通的查詢: Xml程式碼 <!-- 查詢學生list,like姓名 --> <select id="getStudentListLikeName" pa
Java中的位運算子與邏輯運算子的區別(&和&&,|和||)
位運算子 & 在運算中,計算機先判斷 & 兩邊的真假,然後才判斷整體的真假, 邏輯運算子 && 在運算中,如果計算機判斷出有一個為假時,就停止判斷, >
java中根據int值來對應Enum
public enum XXXEnum{ Customer(1,"customer"); XXXEnum(int code,String value){ this.code = code; this.value = valu
JNI獲取並修改Java中類的變數和靜態變數的值
對於JNI的基本使用請移步:Hello JNI 本文主要介紹以下幾個函式的使用: GetObjectClass GetFieldID,GetStaticFieldID Get< Type>Field,GetStatic<
java中不能使用小數點(.)來作為分隔符
tro 使用 一個 特殊 split() 不能 歧義 strong 結果 split()括號裏是一個String的參數,所以一定要符合這種:split(".")形式,即點‘.‘要用雙引號""括起來"."在java中已經被定義為特殊的字符,所以想要在split()中使用"."
Java中通過method對象來調用方法
ring demo1 rac body test 示例 進行 pos exc 1 package reflectTest; 2 3 import java.lang.reflect.Method; 4 5 /** 6 * 通過獲取類類型,進而獲取Meth
Java調用Python腳本並獲取返回值
enum 獲取 error code adt catch sys.argv AI oot 在Java程序中有時需要調用Python的程序,這時可以使用一般的PyFunction來調用python的函數並獲得返回值,但是采用這種方法有可能出現一些莫名其妙的錯誤,比如Impor
Java中List<E>對象賦值問題(深淺拷貝)
不能 沒有 add size for .get one util contains Java中List<E>對象賦值操作問題 業務需求是:取2個集合中的交集對象並返回。如下代碼,busMap中key值和stocks中Map中的key值相等的對象則返回繼續操作,
Java中8種基本資料型別及其預設值
Java語言中有8種基本資料型別,基本情況彙總如下: Java中8種基本資料型別總結 序號 資料型別 大小/位 封裝類 預設值 可表示資料
java中如何使用application.property檔案裡面的值
自定義工具類PropertyUtil,並在該類的static靜態程式碼塊中讀取properties檔案內容儲存在static屬性中以供別的程式使用 package com.hafiz.www.util; import org.slf4j.Logger; import org.slf4j.Log
Java中兩個byte型別相加結果賦值給byte型別的變數會報編譯錯誤,byte加byte的結果為什麼是int?
背景: 之前偶然看到有討論這個問題,在網上搜了半天,結果都不盡如人意,解釋沒有到位, 有的說byte加byte預設就是int,那為什麼這麼做呢? 這不是找麻煩麼?這種奇怪的預設還有哪些?帶來一些列疑問。。。。。。 有的說byte儲存的就是整型資料,這種說法的對錯姑且不論,至少我覺得難免有
Python中藉助字典的方式來動態賦值
同樣的的場景,比如要動態給100個button同時賦值,比如: button_1=101 button_2=102 button_3_103 ...... button_9=109 一般的處理方法好像不行,反覆嘗試了,發現可以使用字典的方式來完成。 方法一: >>&g
Java中根據輸入的數字,列印對應的菱形
package test01; import java.util.Scanner; public class test { public static void main(String[] args) { // 根據輸入,控制檯輸出菱形
mysql中根據“-”拆分字串,並獲取當前小時轉數字
-- sql如下,就是判斷當前時間是否在某個時間段之間,時間段格式:9-12 SELECT * from table where (DATE_FORMAT( CURRENT_TIME() ,'%H' )+0)>=SUBSTRING_INDEX(order_time,'
java中,只宣告一個物件不賦值,與宣告一個物件並賦為null,有啥區別?
轉自:http://www.oschina.net/question/557858_127408 http://zhidao.baidu.com/link?url=rp_hAuPys2vMPnir0t7IFccKVnwEm8zHI7-wEoBSJXw05SAmKHGOObT