简单使用
public enum Fruit{
PEAR,APPLE,PINEAPPLE,WATERMELON,AVOCADO;
}
public class Test {
public static void main(String[] args) {
System.out.println(Fruit.AVOCADO);
}
}
复杂使用
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
public enum Fruit {
PEAR(1),APPLE(2),PINEAPPLE(3),WATERMELON(4),AVOCADO(5);
private int price;
private Fruit(int price){
this.price = price;
}
public static Fruit getFruitByPrice(int price){
for(Fruit f : Fruit.values()){
if (f.price == price){
return f;
}
}
return null;
}
public static List<Fruit> getFruitNoMoreExpensiveThan(Fruit fruit){
int price = fruit.price;
Fruit[] fruits = Fruit.values();
List<Fruit> list = filterFruits(fruits, (Fruit f) -> f.price > price);
list.forEach(System.out::println);
return list;
}
public static List<Fruit> filterFruits(Fruit[] fruits,Predicate<Fruit> p){
List<Fruit> res = new ArrayList<>();
Predicate<Fruit> noMoreExpensive = p.negate();
for (Fruit f : fruits) {
if (noMoreExpensive.test(f)){
res.add(f);
}
}
return res;
}
public static int price(Fruit fruit){
return fruit.ordinal();
}
}
public class Test {
public static void main(String[] args) {
Fruit.getFruitNoMoreExpensiveThan(Fruit.PINEAPPLE);
System.out.println(Fruit.AVOCADO.ordinal());
System.out.println(Fruit.price(Fruit.PINEAPPLE));
}
}