Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从枚举中提取所有值并将其添加到列表<;字符串>;_Java_Generics_Enums - Fatal编程技术网

Java 如何从枚举中提取所有值并将其添加到列表<;字符串>;

Java 如何从枚举中提取所有值并将其添加到列表<;字符串>;,java,generics,enums,Java,Generics,Enums,这个标题不言自明。以下是我目前的代码: public List<String> getVoucherStatuses() { List<String> listOfStatuses = new ArrayList<String>(); for (VoucherStatus status : VoucherStatus.values()) { listOfStatuses.add(status.name(

这个标题不言自明。以下是我目前的代码:

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

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

我一直得到空引用表达式。我做错了什么?谢谢

如果您是从枚举的静态初始化器中调用此函数,它还没有完成初始化,这可能会给您一个NPE


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

哪一行得到的是
NullPointerException
?在哪里得到异常?在哪里定义
name()
方法?只需无异常运行它-您的问题在其他地方…@assylias-我将您的注释误读为“[您应该]只需无例外地运行它”,就像关闭断言一样简单
-Djava.bugs.enabled=false
也许?:)你能详细说明一下吗?我们怎么能从枚举的静态初始值设定项中调用它?@为什么要从头开始:在枚举常量的构造函数中。在枚举中其他静态的初始化器表达式中。在枚举的显式静态初始化器中。在已实现接口的初始化过程中。
public enum VoucherStatus {
        GENERATED, INVALID, ISSUED, REDEEMED, EXPIRED
    }