Java 我能';是否返回枚举的值?抛出异常,为什么?

Java 我能';是否返回枚举的值?抛出异常,为什么?,java,exception,enums,Java,Exception,Enums,我发现在这门课上遇到了一些困难(不是我写的),只发布受问题影响的部分: public class Drive { ......................... ......................... public enum DriveMode { None, Stub, Mirror }; ......................... ......................... public Str

我发现在这门课上遇到了一些困难(不是我写的),只发布受问题影响的部分:

public class Drive {
    .........................
    .........................
    public enum DriveMode {
    None, Stub, Mirror
    };
    .........................
    .........................

    public String getModeString() {
        return mode.toString().toLowerCase();
    }
}
问题是,当我从另一个类调用getModeString()方法时,它会给我一个错误(抛出异常)

影响到我称之为的另一类:

if(drive.getModeString() != null)
    driveElement.getChild("mode").setText(drive.getModeString());
使用调试,我看到它在调用drive.getModeString()时出错,然后尝试执行返回模式.toString().toLowerCase()但是:

1) 如果在调试器中,我尝试计算表达式mode.toString().toLowerCase(),它会告诉我:
,如果我继续调试,进入下一步,则会引发NullPointerException

为什么??有人对如何解决这个问题有一些想法吗

Tnx
Andrea

最有可能的是
mode
字段为空。

您不显示声明或分配“mode”数据成员的位置。很可能为空。恐怕您没有提供足够的详细信息。在何处声明和填充模式?确切的异常和stacktrace是什么。我认为如果模式字段没有显式初始化,默认情况下它是用第一个值(无)初始化的,是吗?@AndreaNobili否,您需要显式初始化该字段,就像任何其他非基元类型一样,否则它将为null。执行类似于
private DriveMode mode=DriveMode.NONE的操作