如何让同一个方法能够接受不同类型的参数
我要写一个通用的方法处理同一类事务。譬如说排序。
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里面的元素类型,调用相应的比较方法