[英]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.