gpt4 book ai didi

java - 如何静态导入 Java 中单独文件中的枚举?

转载 作者:行者123 更新时间:2023-11-30 02:14:32 24 4
gpt4 key购买 nike

基本上,这是我的代码的要点:

// 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;
}
}

如何导入静态我的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.

最佳答案

想通了!将两个 enum 源文件移至名为 mypackage 的子文件夹,并且除了 import static 之外,还对它们进行正常导入 > 他们的值(value)观。 Shape 类现在开始如下:

import mypackage.ShapeSize;
import mypackage.ShapeColor;
import static mypackage.ShapeSize.*;
import static mypackage.ShapeColor.*;

编辑:实际上,不需要移动 enum 源文件。只需要标准导入它们。

关于java - 如何静态导入 Java 中单独文件中的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49008101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com