2013-02-28 98 views
1

我有一個關於在Java集合框架中使用泛型類型的問題。Java集合框架中的泛型類型和方法聲明

下面是從Oracle的Java集合線程所採取的Set接口的片段(發現here):

public interface Set<E> extends Collection<E> { 
    // Basic operations 
    int size(); 
    boolean isEmpty(); 
    boolean contains(Object element); 
    // optional 
    boolean add(E element); 
    // optional 
    boolean remove(Object element); 
    ... 

我的問題是:鑑於Set<E>是通用與泛型類型參數E,爲什麼是containsremove方法聲明爲Object類型的參數? add方法需要E類型的參數,爲什麼不要containsremove也這樣做?

回答

-1

這只是因爲向前兼容的時間通用之前添加到Java。

這種舊的代碼仍然有效。

+0

謝謝史密斯先生42。你有沒有一個向後兼容的例子?很高興看到它在行動中。 – 2013-03-01 19:53:05