日期:2014-05-17  浏览次数:20844 次

如何让同一个方法能够接受不同类型的参数
我要写一个通用的方法处理同一类事务。譬如说排序。
public void sort(List<Student> stuArr){
  。。。。。
}
public void sort(List<Teacher> teaArr){
 。。。。。
}
里面的处理方法都是一样,就是传入参数类型不一样。如何能整合成一个方法。求大家指教!!!

------解决方案--------------------
泛型不能當作不同的參數類型,所以上面的,只能看成
public void sort(List stuArr)

public void sort(List<?> stuArr)
------解决方案--------------------
既然处理是一样的,就说明某些东西是学生和老师是共同的。可建一个父类Person,学生和老师都继承于这个父类。参数使用List<Person>,就OK了。
------解决方案--------------------
public void sort(List<?> stuArr, String paramName)
paramName是要排序的属性名
在方法中通过反射获取属性值,然后比较排序
------解决方案--------------------
public void sort(List<Object> teaArr) 获取写个父类,让子类继承。
 
------解决方案--------------------
这个用多态应该能解决,写一个父类,通过子类实列化父类应该就可以了吧。
------解决方案--------------------
Object不行吗?
public void Sort(List<Object> arr){

}
------解决方案--------------------
使用object的参数就Ok啦
------解决方案--------------------
泛型去了就行了
------解决方案--------------------
用泛型就行
public void sort(List stuArr)
public void sort(List<?> stuArr)
public void sort(List<? extends Person> stuArr)

lz这个排序应该是根据student,teacher类的某一个字段排序吧,
这就要加comparator比较器或者comparable接口了,

要先判断传进来的list里面的元素类型,调用相应的比较方法