當前位置:
首頁 > 最新 > enum:返回枚舉值的前一個值

enum:返回枚舉值的前一個值

一、什麼是枚舉

枚舉類型是Java 5中新增特性的一部分,它是一種特殊的數據類型,之所以特殊是因為它既是一種類(class)類型卻又比類類型多了些特殊的約束,但是這些約束的存在也造就了枚舉類型的簡潔性、安全性以及便捷性。

二、枚舉的定義

定義枚舉時候使用enum,與使用class。

public class EnumDemo {

public static void main(String[] args){

//直接引用

Fruit fruit = Fruit.APPLE;

}

//定義枚舉類型

enum Fruit{

APPLE, PEAR, ORANGES, BANANA

}

}

三、小問題,如何循環讀取枚舉值

public class EnumDemo {

public static void main(String[] args){

Fruit[] arraryFruits = new Fruit[];

for(int i = 0; i

}

}

}

//定義枚舉類型

enum Fruit{

APPLE, PEAR, ORANGES, BANANA

}

四、如何返回枚舉值的前一個值

1、定義一個枚舉類

public enum EnumFurit {

APPLE("apple","蘋果"),

PEAR("pear","梨"),

ORANGES("orange","橙子"),

BANANA("banana","香蕉");

private String value;

private String desc;

private EnumFurit(String value,String desc){

this.setValue(value);

this.setDesc(desc);

}

public String getValue() {

return value;

}

public String getDesc() {

return desc;

}

public void setValue(String value) {

this.value = value;

}

public void setDesc(String desc) {

this.desc = desc;

}

}

2、建立一個與枚舉類一致的數據結構類

public class FruitEntity {

private String value;

private String desc;

public String getValue() {

return value;

}

public String getDesc() {

return desc;

}

public void setValue(String value) {

this.value = value;

}

public void setDesc(String desc) {

this.desc = desc;

}

}

3、實現

方法:@letEnumToList 將枚舉數據轉換成list

@getBeforeEnum 通過位置獲取前一個值 第一個返回最後一個

import java.util.ArrayList;

import java.util.List;

public class EnumDemo {

public void getBeforeEnum(EnumFurit fruit){

List fruitEntityList = this.letEnumToList();

int index = fruit.ordinal();

if( 0 == index){

int last = fruitEntityList.size();

}else{

}

}

public List letEnumToList(){

List fruitList = new ArrayList();

for(EnumFurit furit : EnumFurit.values()){

FruitEntity fruitEntity = new FruitEntity();

fruitEntity.setValue(furit.getValue());

fruitEntity.setDesc(furit.getDesc());

fruitList.add(fruitEntity);

}

return fruitList;

}

}

4、測試

使用testng進行單元測試

import static org.testng.Assert.*;

public class EnumDemoTest {

public EnumDemo enumDemo;

@BeforeClass

public void setup() throws Exception{

enumDemo = new EnumDemo();

}

public void testGetBeforeEnum_apple_banana() throws Exception {

enumDemo.getBeforeEnum(EnumFurit.APPLE);

}

public void testGetBeforeEnum_banana_orange() throws Exception {

enumDemo.getBeforeEnum(EnumFurit.BANANA);

}

}

寫在最後,首先當我看到這個題目的時候,我的第一反應是用switch..,case...實現,但是如添加枚舉值,相應的需要改switch了。然後想用list去實現了,雖然實現了感覺還是有點麻煩,暫時還不知道其他的方法,如果有更好的方法請告知。。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 TestDev測試開發 的精彩文章:

TAG:TestDev測試開發 |