2012-08-03 31 views
-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 { } 

我該怎麼做,在這兩個文件? 謝謝

+0

我會使用IDE,這將幫助您自動執行此操作。 – 2012-08-03 18:16:54

回答

3

如果它們在同一個包中,則不必像導入其他java類一樣導入它們。

如果他們沒有,你會像你那樣做會導入一個類:

import com.mycompany.mypackage.Colour.Color; 

編輯:我只注意到它是一個嵌套的枚舉(對不起) - 你仍然不需要如果它在同一個包中則導入它,但要聲明它將使用Colour.Color

注意,你會在Colour.java文件中像這樣定義的包:

package com.mycompany.mypackage; 
+0

我正在使用記事本。 – 2012-08-03 17:58:16

+1

您使用的編輯器沒有什麼不同 - 請參閱我的編輯以查看它們是否有助於闡明。 – 2012-08-03 18:00:04

+0

所以在第一個文件中我需要提及包名? – 2012-08-03 18:02:15

0

假設兩個枚舉&類是在同一個包只需要聲明的,說:

Colour myColour = Colour.RED; 

而且會提示使用Eclipse,它使用快捷鍵爲您排序導入(CTRL + Shift + M)。

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

} 
+0

Upvoted在枚舉上的好建議 – 2012-08-05 08:18:50

0

停止使用記事本,並切換到集成開發環境(IDE)等Eclipse。你可以免費下載它,它可以幫助你導入,編譯,代碼格式化,自動完成和其他許多東西。瞭解所有功能可能需要一段時間,但它會立即改善您作爲開發人員的生活。

看來你不瞭解Java中的包。請參閱this answer,我將解釋有關軟件包的信息。

+0

我使用IDE i-e netbeans,但這是我的任務。我必須處理記事本,否則這個文件在我的netbeabs IDE中運行,但無法處理記事本 – 2012-08-04 05:05:03

+0

如果這是作業,請標記問題。 – 2012-08-05 08:19:39