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去實現了,雖然實現了感覺還是有點麻煩,暫時還不知道其他的方法,如果有更好的方法請告知。。
TAG:TestDev測試開發 |