我正在开发一个具有分层架构的项目。 我有一个接口ABC,在该接口中我有一个枚举XYZ
前者
public interface ABC {
public enum XYZ {
CONSTANT1("SOMETHING"),
CONSTANT2("SOMETHING3");
final String name;
private TYPE(String name) {
this.name=name;
}
public String getName() {
return this.name;
}
}
}
我正在使用ant编译它并在其他层使用此jar文件。在该层中,我试图像
那样访问它String name=ABC.XYZ.CONSTANT1.getName();
我在编译期间遇到符号未找到错误。我验证了classpath设置正确。 我使用的是ant v 1.8和java 1.6。
为什么我收到此错误?
答案 0 :(得分:0)
首先,不要将枚举嵌套在接口中。完全没有问题,它有自己的以enum命名的源文件。
其次,我认为您的私人构造函数中的XYZ
代替TYPE
?
最后,你应该能够以这种方式使用它,无论是通过ant编译还是在eclipse中编译或直接使用javac。可能你没有编译所有东西 - 你做的方式,应该有ABC.class
(界面),ABC$XYZ.class
(内部枚举)和你的调用类的类文件。