2016-04-25 86 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方法 –