-1

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 { }

両方のファイルでそれを行うにはどうすればよいですか? ありがとう

4

5 に答える 5

3

それらが同じパッケージにある場合は、他のJavaクラスのようにインポートする必要はありません。

そうでない場合は、クラスをインポートするのと同じように行います。

import com.mycompany.mypackage.Colour.Color;

編集:ネストされた列挙型であることに気づきました(申し訳ありません)-同じパッケージにある場合はインポートする必要はありませんが、宣言するにはを使用しますColour.Color

Colour.java次のようにファイルでパッケージを定義することに注意してください。

package com.mycompany.mypackage;
于 2012-08-03T17:57:46.773 に答える
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; }
    }

}
于 2012-08-03T18:11:56.570 に答える
0

列挙型とクラスの両方が同じパッケージに含まれていると仮定すると、次のように宣言します。

Colour myColour = Colour.RED;

また、 Eclipseを使用することをお勧めします。これは、ショートカットキー(CTRL + Shift + M)を使用してインポートを分類します。

于 2012-08-03T17:58:41.303 に答える
0

メモ帳の使用をやめ、 Eclipseなどの統合開発環境 (IDE) に切り替えます。無料でダウンロードでき、インポート、コンパイル、コードのフォーマット、オートコンプリート、その他多くの機能に役立ちます。すべての機能を習得するには時間がかかるかもしれませんが、開発者としての生活がすぐに向上します。

Java のパッケージについてご存じないようです。パッケージについて説明しているこの回答を参照してください。

于 2012-08-03T19:13:35.563 に答える
0

それらが同じパッケージにある場合、それらをインポートする必要はまったくありません。それらが異なるパッケージにある場合は、Java インポート ステートメントを使用します。または、詳細については、このディスカッションを参照してください。

于 2012-08-03T17:59:27.437 に答える