2016-02-26 35 views
0

我想如下定義一個Swing組合框模型:AbstractListModel上並不通用與JDK 1.6.0_45

public class SchemaGroupModel<E> extends AbstractListModel<E> implements ComboBoxModel<E> 

但是Eclipse引發錯誤(兩次):我檢查

The type AbstractListModel is not generic; it cannot be parameterized with arguments <E> 

here(原始類型定義),here(舊JDK)和here(JDK庫在Java Build路徑中的位置)。從這些回覆中,我想這個問題應該是JDK的版本或者它在IDE庫中的位置。但我加倍檢查:我使用JDK 1.6和這樣的庫來之前 Maven依賴關係。

Eclipse's screenshot

我在做什麼錯?

回答

2

該類Java 6中並沒有通用的

https://docs.oracle.com/javase/6/docs/api/javax/swing/AbstractListModel.html

public abstract class AbstractListModel 
extends Object 
implements ListModel, Serializable 

你可以看到,在Java 7中它被製造的仿製。

https://docs.oracle.com/javase/7/docs/api/javax/swing/AbstractListModel.html

public abstract class AbstractListModel<E> 
extends Object 
implements ListModel<E>, Serializable 

但是,如果你要更新,我建議使用Java 8作爲Java 7的是EOL。

+1

非常感謝。 我一直被類似問題的(提到的)答案誤導,建議轉向1.6版。不幸的是,我必須留在Java 6(客戶需求),所以我將在這種情況下避免仿製藥 – serkelion

+0

@serkelion今天一個固定的客戶報告的錯誤,它只出現在Java 8更新74中,但沒有更新66.有一個好問題,假設。 ;) –

+0

是的,但這只是冰山一角。 ;) – serkelion