我是Java的新手。我有一个接口,有一些我需要实现的方法。在界面内部,有一个类我需要访问的枚举。
看起来像这样:
public interface Operations{
//some function names that I have to implement
public static enum ErrorCodes{
BADFD;
NOFILE;
ISDIR;
private ErrorCode{
}
}
}
在我的实现中,当我尝试访问ErrorCodes.BADFD
时,它会给我错误。我不知道访问它的正确方法。另外,调用的空private ErrorCode{}
是什么。它是构造函数吗?它做了什么?
编辑:添加大写' o'枚举名称
答案 0 :(得分:7)
首先,让我们更正您的格式错误的代码:
// lowercase "interface"
// Usually interfaces and classes are capitalized
public interface Operations{
// Singular to match the rest of the code and question.
public static enum ErrorCode{
// commas to separate instances
BADFD,
NOFILE,
ISDIR;
// Parameterless constructor needs ()
private ErrorCode() {
}
}
}
要在界面之外引用ErrorCode
,您必须使用ErrorCode
的封闭界面Operations
对其进行限定。
Operations.ErrorCode code = Operations.ErrorCode.BADFD;
答案 1 :(得分:2)
以下是更正后的
public interface Operations{
//some function names that I have to implement
public static enum ErrorCodes{
BADFD,
NOFILE,
ISDIR;
private ErrorCodes(){}
}
答案 2 :(得分:1)
我相信你必须以这种方式调用枚举:
Operations.ErrorCode.BADFD
因为ErrorCode是Operation接口的内部枚举。
我注意到几个错字问题,请看一下这段代码:
public interface Operations {
//some function names that I have to implement
public static enum ErrorCode {
BADFD,
NOFILE,
ISDIR;
private ErrorCode() {
}
}
}