2012-10-31 27 views
3

我是一位C#程序員,並同意幫助一個煎鍋做Java作業。擴展通用列表

在一個例子中,我想創建一個擴展泛型列表的類。在C#中,這看起來像

public class MyListClass : List<MyCustomType> 

我已經試過

public class MyListClass extends List<MyCustomType> 

,並得到錯誤 「沒有此接口預期」。那麼,我不是試圖使用一個接口...任何提示?

+0

Java中的'List'是一個接口。在C#中的等價物將是一個「IList」。這可能會讓你感到困惑。 – maba

+0

好點。我現在已經使用LinkedList,並且到目前爲止它的行爲如預期 – Peter

回答

2

您無法擴展接口。你必須實現它。 但你可以擴展實現之一(鏈表爲例):

public class MyListClass extends LinkedList<MyCustomType> { 
+2

'你必須實現他':接口不是一個人。 –

+0

對不起,我的英語。俄語的「接口」是男性化的。 – Damask

+1

大聲笑...界面甚至不是女孩......:D –

4

java.util.List是一個接口。你需要實現它而不是擴展它。

public class MyListClass implements List<MyCustomType>{ 
} 
+0

我是否必須再次實現整個事情?這似乎是一個巨大的矯枉過正...... – Peter

+0

如果你的課程具體,那麼你必須否則你可以讓你的課堂抽象化。 –

+0

感謝您的回答。這似乎聽起來並不實際。大約有30種方法需要實施。如果我只是想使用該死的東西,那麼不值得付出努力... – Peter

0

你需要聲明一個泛型類/接口

public class MyListClass<T> implements List<T> { } 

或者

public interface MyListInterface<T> extends List<T> { } 

或最重要

public class MyListClass<T> extends AbstractList<T> implements List<T> { } 
1

Java不是C++,因此忘記了所有關於標準模板的知識。

你可能想要的是隻是一個類型列表:

List<MyCustomType> myList = new ArrayList<MyCustomType>(); 

,這一切。


將「擴展通用類」作爲任務的目標是不常見的。在現實世界中也是不尋常的。