2016-04-25 81 views
0

我正在開發一個java項目,我需要使用我創建的不同類型的列表(例如學生,學校......)。如何覆蓋java列表方法?

的問題是,我需要使用一些列表的方法與此類型(或類),如「containe」防爆...

我試圖通過創建自己的列表(數組列表或向量覆蓋此方法)這是從java列表擴展...但我有很多問題,因爲我想用這個新的列表(我的列表)與不同類型。

這是我如何擴展從Java列表myList中:

public class myList extends ArrayList<Object>{ 

public myList() { 
} 
    /***methods***/ 
} 

,這我如何使用它:

public class newclass(){ 
     . 
     . 
     . 
    myList<student> sl=new myList<student>(); 
     . 
     . 

但它不工作。那麼做到這一點的正確方法是什麼?

謝謝。

+0

2 sidenodes。類遵循java命名約定以大寫字母開頭。其次,不要將這個自定義'List'定義爲'Object'的泛型,這將會只會導致後面的問題(這也是你的問題)。使它成爲MyList 擴展ArrayList '。 – SomeJavaGuy

+1

[Extensions Generic Classes]的可能的重複(http://stackoverflow.com/questions/7255643/extending-generic-classes) –

+0

我不知道我是否理解正確,但也許你需要的是在你的對象中實現可比較的,所以排序和其他方法的工作...參考:http://stackoverflow.com/a/3718515/2101088 – Rodrigo

回答

1

你在找什麼是Generics

public class myList<T> extends ArrayList<T> { 
... 
} 

這樣你就可以創建自己的一切的列表中選擇所需這樣的:

myList<student> sl = new myList<>(); 

響應更新:

如何讓get -for-example在d中返回相同的類型eclaration 首位,而其代替Object類型

響應您的列表與ArrayList

myList<student> sl = new myList<>(); 
sl.add(new student()); 
student s = sl.get(0); 

響應:

// But it works also with an ArrayList which implicitly mean that you have no need 
// to create your own implementation of an ArrayList 
List<student> sl = new ArrayList<>(); 
sl.add(new student()); 
student s = sl.get(0); 
+0

你可以寫一個類型(對象)'學生',這是由'字符串定義的覆蓋'包含'名字 ;字符串姓氏;'。 –

+0

請你澄清我不明白你的問題 –

+1

你不需要重寫contains方法,只需在你的班級學生中正確實現你的equals方法 –