在我看來,有兩種解決方案:
1)您可以在Java中的類模擬「C枚舉類型」:
class Animals {
public static int DOG = 0;
public static int CAT = 1;
public static int MOUSE = 2;
}
在這種情況下,您可以手動設置值枚舉 - 在它由編譯器自動完成。枚舉
使用看起來像這樣
public class Test {
public static void main(String[] args) {
int[] age = new int[3];
age[Animals.DOG] = 4;
age[Animals.CAT] = 3;
age[Animals.MOUSE] = 10;
for (int i = 0; i < age.length; i++) {
System.out.print(age[i] + " ");
}
}
}
我覺得這是不好的解決方案,因爲這種封裝突破OOP原則(類動物)。
2)您可以使用使用了Java枚舉
enum Animals {
DOG(0), CAT(1), MOUSE(2);
int value;
private Animals(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
而且例如
public class Test {
public static void main(String[] args) {
int[] age = new int[3];
age[Animals.DOG.getValue()] = 4;
age[Animals.CAT.getValue()] = 3;
age[Animals.MOUSE.getValue()] = 10;
for (int i = 0; i < age.length; i++) {
System.out.print(age[i] + " ");
}
}
}
在Java中枚舉是一種類。詳情請參閱this。 枚舉沒有默認值,你必須自己設置。在這個例子中,它是用構造函數Animal(int value)
完成的。另外,我們不能像整數值那樣使用Animals.DOG
,但我們必須使用方法getValue()
。
爲什麼?使用'Map'和'List'。 –
您需要展示一個小例子,說明您想要實現的目標以及您想在何處以及如何使用枚舉。因此,對於只有很少或根本不瞭解'C'的Java開發人員來說,你的問題確實沒有什麼意義。 – SudoRahul
我認爲這不存在。但如果是這樣,這應該是一個不好的做法,請記住,java是一種面向對象的語言。還要注意,在C中,這不是一個好的做法(你應該考慮數據類型抽象)。除非你想要做某些事情,比如鍵值,那麼你可以使用Map。 –