用于循环打印枚举的索引,但不打印值

时间:2014-11-25 19:33:22

标签: java enums

public enum Months{
JANUARY("first"), FEBRUARY("second"), MARCH("third"), APRIL("fourth"), MAY("fifth"), JUNE("sixth"), JULY("seventh"), 
AUGUST("eigth"), SEPTEMBER("ninth"), OCTOBER("tenth"), NOVEMBER("eleventh"), DECEMBER("twelfth");

private String name;
// value in parentheses after elements
Months(String name){
    this.name = name;
}
public String getName(){
    return name;
}
public String toString(){
    return name;
}

这是我的枚举

public class Test {
   public static void main(String [] args){
   for(Months m : Months.values()){
      System.out.println(m);
   } 

这是我的主要方法。但是这个for循环访问toString方法并打印索引的值,即第一个,第二个等。 有什么方法可以循环并打印索引,即1月,2月等?

2 个答案:

答案 0 :(得分:7)

所有enum元素都提供name()方法,该方法将为您提供用于定义元素的标识符,例如Month.JANUARY.name()将为"JANUARY"

答案 1 :(得分:0)

您需要做的就是change System.out.println(m);System.out.println(m.name())

public static void main(String[] args) {
    for (Months m : Months.values()) {
        System.out.println(m.name()); // Change is in this line.
    }
}