2012-01-17 169 views
0

代碼:Eclipse的自動完成

private final int A0 = 0; 
private final int A1 = 1; 

..... 

int a = 0; 
.... 
switch (a) { 
case [Ctrl + Space] 
} 

當我按下Ctrl + Space,我希望日食顯示列表,包括A0和A1,但事實並非如此。如何解決這個問題?

我正在使用Indigo。

回答

1

讓他們真正的常數:

private static final int A0 = 0; 
private static final int A1 = 1; 

或鍵入A0自己。

+0

是的我知道,但爲什麼需要靜態? – merrymenvn 2012-01-17 10:40:02

+0

你不需要它(除非包含開關的方法本身是靜態的)。代碼使用非靜態final字段進行編譯。但是如果你想定義全局常量,需要靜態。對象的每個實例都有自己的非靜態最終字段副本。如果該字段是靜態的,則該字段綁定到類,而不是每個實例。 – 2012-01-17 10:45:39

0

另一種選擇是使用枚舉而不是Java 1.4類型常量。然後Eclipse知道類型,並且可以只提供枚舉值。它也很聰明,告訴你在這種情況下尚未提供的值:

private enum A { 
    e0, 
    e1, 
    // end 
    ; 
} 

A a = A.e0; 

switch (a) { 
    case e0: 
    case [Ctrl + Space] // this will expand to e1 
}