java枚舉類爲下拉框提供值的情況

java枚舉類關鍵字enum,是jdk1.5之後 纔有的新類型。java枚舉類在類加載的過程會創建自定義的枚舉對象,在靜態塊中進行初始化,枚舉適用於一個類的對象個數固定的情況。

1、如何創建一個枚舉類?創建一個枚舉類就和創建類的原理一樣,只是class關鍵字換成enum關鍵字,比如:

public enum Light {
    RED , GREEN , YELLOW ;
}

2、java枚舉類的用法:

      1)、常量,使用java枚舉類可以替代常量,因爲常量沒有命名空間,使用起來不是非常清晰,如果使用java枚舉類,就可以清晰地讀懂代碼,代碼可維護性強。

    2)、switch條件語句中,switch可以只用使用java枚舉進行條件判斷,清晰明朗。

3、具體使用:

     在最近的開發中,頁面上有一個 名爲 正/反例的下拉框,值爲,是 和否。使用的是boolean類型,按照之前的寫法,下拉框固定的值都寫死在頁面。但是現在老大 發話了,說這樣寫死不利於維護,也不安全,說讓寫枚舉類,行,枚舉類就枚舉類。

    上代碼:

先寫一個返回下拉框數據的 model 類:

public class SelectBean implements Serializable{
	 private String seKey;
	 private String seValue;
	public String getSeKey() {
		return seKey;
	}
	public void setSeKey(String seKey) {
		this.seKey = seKey;
	}
	public String getSeValue() {
		return seValue;
	}
	public void setSeValue(String seValue) {
		this.seValue = seValue;
	}
	
}

後臺 枚舉類:

public enum CaseNegative {
	CASENEGATIVE_ALL("","全部"),
	CASENEGATIVE_JUST("0","正列"),
	CASENEGATIVE_BACK("1","反列");
	private String label;
	private String value;
	public String getLabel() {
		return label;
	}
	public void setLabel(String label) {
		this.label = label;
	}
	public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
	private CaseNegative(String label, String value) {
		this.label = label;
		this.value = value;
	}
	
}

頁面加載時調用 枚舉類拿值的方法:

/**
	 * 下拉框
	 * @param String 
	 * @return list
	 */
	@Override
	public List<SelectBean> queryEnumList(ReqObject<String> data) {
		SelectBean bean;
	    List<SelectBean> listBean = null;
	
		 listBean=new ArrayList<SelectBean>();
		    for(CaseNegative e: CaseNegative.values()){
		    	bean = new SelectBean();
		    	bean.setSeKey(e.getLabel());
		    	bean.setSeValue(e.getValue());
		    	listBean.add(bean);
		    }
		
   }
	return listBean;
 }

最後:前臺顯示 react:

<div style={{marginRight:'10px',float:'left'}}>
     <label>
         正反例:
     </label>

     <Select   id="negative" defaultValue=""  onChange={this.changeIsNegative.bind(this)} 
     >
        {optsInterfaceType}
     </Select>
</div>
//render 組裝數據
 const {negatives,isStatus,selectedRowKeys} = this.state;
 const optsInterfaceType = [];
 negatives.map((item, i) => {
     return optsInterfaceType.push(<Option key={item.seKey} value={item.seKey}>    
             {item.seValue}</Option>);
     });
//調用 後臺
initIsNegative = () => {
    CaseAppActions.initCaseSel();
}

結果展示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章