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
}