如何使用notepad ++导入枚举

时间:2012-08-03 17:55:09

标签: java enums

我正在尝试从其他文件导入enum。我在第一个文件中有以下代码:

public class Colour {

    public enum Color {
        RED, ORANGE, YELLOW, GREEN, BLUE, BLACK, WHITE; // ; is optional

        @Override
        public String toString() {
            switch (this) {
            case RED:
                return "red";
            case ORANGE:
                return "orange";
            case YELLOW:
                return "yellow";
            case GREEN:
                return "green";
            case BLUE:
                return "blue";
            case BLACK:
                return "black";
            case WHITE:
                return "white";
            default:
                throw new IllegalStateException();
            }
        }

    }

现在我想将这些导入到另一个,让我们说类Test

public class Test { }

我将如何在两个文件中执行此操作? 感谢

5 个答案:

答案 0 :(得分:3)

如果它们在同一个包中,则不必像其他任何java类一样导入它们。

如果他们不是,那就像你导入一个课程一样:

import com.mycompany.mypackage.Colour.Color;
编辑:我刚刚注意到它是一个嵌套的枚举(抱歉) - 如果它在同一个包中,你仍然不需要导入它,但要声明它你将使用Colour.Color

请注意,您要在Colour.java文件中定义包,如下所示:

package com.mycompany.mypackage;

答案 1 :(得分:1)

这不是一个答案,但评论不会让我格式化大块代码。我只是想提出一些代码改进。要完成您的枚举toString()正在做的事情,您可以通过使用以下方式显着缩短它:

@Override
public String toString() { return this.name().toLowerCase(); }

当然,如果您希望能够改变小写表示中的值,那么使用构造函数来设置displayValue(比case语句好得多)。

public class Colour {

    public enum Color {
        RED("red-ish"),
        ORANGE("orange-ish"),
        YELLOW("yellow-like"),
        GREEN("very green"),
        BLUE("like the sky"),
        BLACK("blanco"),
        WHITE("weiss");

        String displayVal;

        Color(String displaVal) { this.displayVal = displayVal; }

        public String toString() { return displayVal; }
    }

}

答案 2 :(得分:0)

假设enum& class在同一个包中只是声明,比如说:

Colour myColour = Colour.RED;

同样会使用Eclipse,它会使用快捷键(CTRL + Shift + M)为您排序导入。

答案 3 :(得分:0)

如果它们在同一个包中,则根本不需要导入它们。如果它们位于不同的包中,请使用java import statement。或者请参阅this discussion了解详情。

答案 4 :(得分:0)

停止使用记事本并切换到Eclipse等集成开发环境(IDE)。您可以免费下载它,它可以帮助您进行导入,编译,代码格式化,自动完成和许多其他的东西。可能需要一段时间才能了解所有功能,但它会立即改善您作为开发人员的生活。

您似乎不了解Java中的包。请参阅this answer我在哪里解释包。