Все Enum НЕЯВНО наследуются от java.lang.Enum. Несколько методов:
ordinal — порядок, в котором объявлены константы. Достаточно полезно, если Enum день недели, месяцы и т.п.
name — константа в виде строки

Также у Enum есть java.lang.Class.getEnumConstants() который позволяет получить все возможные перечисления метода

public enum UserType {
	ADMIN     (true,    true),
	BUYER     (false,   false), 
	SELLER    (false,   true),
	MODERATOR (true   , true);
	
	private boolean isEditComments;
	private boolean isAddProduct;
	
	UserType(boolean isEditComments, boolean isAddProduct) {
		this.isEditComments = isEditComments;
		this.isAddProduct = isAddProduct;
	}	
	
	public boolean isEditComments() {
		return isEditComments;
	}

	public boolean isAddProduct() {
		return isAddProduct;
	}
}

Ну и сам главный класс:

import static test.UserType.*;

public class Main {
	
	public static void main(String[] args) {
		
		//false
		System.out.println(BUYER.isEditComments());
		//true
		System.out.println(ADMIN.isAddProduct());
		//1 (счет идет с 0)
		System.out.println(BUYER.ordinal());
		//BUYER - но это уже строка, а не enum
		System.out.println(BUYER.name());
		//true
		System.out.println(UserType.class.getEnumConstants()[0].isAddProduct());
	
	}

}
Реклама