2012-10-10 45 views
4

我正在使用可以編譯Java 6和Java 7平臺的項目。 其中一個GUI類正在使用JComboBox。 由於JComboBox在Java 7中將其規範更改爲泛型類型,因此它需要組件的參數聲明。JComboBox在Java 7和Java 6中的安全類型區別

在Java 6中聲明,如:

JComboBox mybox; 

是好的,並給出沒有錯誤,沒有警告。

在Java 7中相同的組件聲明給人的Java 7的要求警告

JComboBox is a raw type. References to generic type JComboBox<E> should be parameterized 

給予參數:

JComboBox<String> mybox; 

消除警告,Java 7的平臺,但我得到的編譯錯誤Java 6中

在這種情況下,我可以做些什麼,所以Java平臺6和7都可以爲我的項目安心生活?

回答

2

您可以使用@SuppressWarnings("rawtypes")忽略泛型警告。請注意,getSelectedItem未使用泛型。一旦你完全去用Java 7刪除/修復警告。

+0

我不喜歡在代碼SuppressWarnings中留下。 是唯一的方法嗎? – kpoxa

+0

那麼Java 6將不會在這個類中使用泛型進行編譯,因此您沒有多少選擇:保留警告或刪除它們,這取決於您的個人偏好,我會壓制它們並創建一張票以記住稍後處理它們。 –

+0

在您的方法中,您可能還需要\t \t @SuppressWarnings(「unchecked」) – kc2001