我正在从事一个具有分层体系结构的项目。我有一个接口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();
我在编译过程中得到符号未找到错误。我验证了类路径设置是否正确。我使用的是ant v 1.8和java 1.6。
首先,不要在接口中嵌套枚举。如果它有自己的源文件以enum命名,那就完全没问题了。
第二,我假设你的意思是XYZ
而不是TYPE
在你的私有构造函数?
最后,您应该能够以这种方式使用它,无论是通过ant或在eclipse中编译还是直接使用javac。也许你没有编译所有的东西-你做它的方式,应该有ABC.class
(接口),ABC$XYZ.class
(内部枚举)和你的调用类的类文件。