2012-03-21 28 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

相關問題