[英]How to static-import enums residing in separate files in Java?
基本上,这是我的代码的要点:
// File: ShapeColor.java
package mypackage;
public enum ShapeColor
{
MAUVE,
PURPLE,
VIOLET;
}
// File: ShapeSize.java
package mypackage;
public enum ShapeSize
{
TINY,
SMALL,
MEDIUM,
LARGE,
HUGE,
COLOSSAL;
}
// File: Shape.java
import static mypackage.ShapeSize.*;
import static mypackage.ShapeColor.*;
public class Shape
{
private ShapeSize size;
private ShapeColor color;
public Shape()
{
this(ShapeSize.MEDIUM, ShapeColor.PURPLE);
}
public Shape(ShapeSize ss, ShapeColor sc)
{
this.size = ss;
this.color = sc;
}
}
如何import static
enum
定义,以便可以在不限制enum
值的情况下访问它们? 我将所有.java源文件都放在一个目录中,并且正在从命令行进行编译。 我对软件包以及如何在目录中“组织”我的源文件一无所知(或者我什至不应该这样做)。 我尝试阅读有关这些概念的信息,但所做的只是让我更加困惑。 不幸的是,我通过示例和演示代码比通过阅读文档学到了更好的东西。
编辑:
添加package mypackage;
enum
文件,并将import static mypackage.*
class
文件。 我收到以下错误:
.\\ShapeSize.java:4: error: duplicate class: mypackage.ShapeSize public enum ShapeSize ^ Shape.java:7: error: cannot access ShapeSize private ShapeSize size; ^ bad source file: .\\ShapeSize.java file does not contain class ShapeSize Please remove or make sure it appears in the correct subdirectory of the sourcepath.
您可以使用:
import static mypackage.ShapeColor.PURPLE;
import static mypackage.ShapeSize.MEDIUM;
弄清楚了! 将两个enum
源文件都移动到名为mypackage
子文件夹中,并且除了import static
值外,还正常import
它们。 Shape类现在开始如下:
import mypackage.ShapeSize;
import mypackage.ShapeColor;
import static mypackage.ShapeSize.*;
import static mypackage.ShapeColor.*;
编辑:实际上,不需要移动enum
源文件。 只需将其标准import
即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.