2012-03-21 53 views
1

标题非常明了。这里是我到目前为止的代码:如何从枚举中提取所有值并将它们添加到列表<String>

public List<String> getVoucherStatuses() { 
     List<String> listOfStatuses = new ArrayList<String>(); 

     for (VoucherStatus status : VoucherStatus.values()) { 
      listOfStatuses.add(status.name()); 
     } 
     return listOfStatuses; 
    } 

这里是枚举:

public enum VoucherStatus { 
     GENERATED, INVALID, ISSUED, REDEEMED, EXPIRED 
    } 

我不断收到空引用expcetion。我究竟做错了什么?谢谢

+3

哪一行出现'NullPointerException'? – 2012-03-21 17:26:29

+0

你在哪里得到例外? – 2012-03-21 17:27:18

+0

你在哪里定义'name()'方法? – 2012-03-21 17:27:40

回答

0

如果你从枚举的静态初始化函数内调用它,它不会完成初始化,这可能会给你一个NPE。

一个解决方法是使用静态嵌套类。

+1

你能详细说明一下吗?我们如何从Enum的静态初始化器中调用它? – 2012-03-21 17:49:04

+0

@ why-el关闭我的头顶:在枚举常量的构造函数中。在枚举中其他静态的初始化表达式中。在一个明确的静态初始化枚举。在实现的接口的初始化中。 – 2012-03-21 18:04:15

相关问题