1. 程式人生 > >根據java反射機制 通過傳入的引數 對傳入的List 進行排序

根據java反射機制 通過傳入的引數 對傳入的List 進行排序

import java.lang.reflect.Field;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortData {
    public List<?> sortByInt(List<?> list, final String param ){
        //自定義Comparator物件,自定義排序  
        Comparator c = new Comparator() {  
            @Override
public int compare(Object o1, Object o2) { try { Field field1 = o1.getClass().getDeclaredField(param); Field field2 = o2.getClass().getDeclaredField(param); field1.setAccessible(true); field2.setAccessible(true
); if((Integer)field1.get(o1)<(Integer)field2.get(o2)) return 1; //注意!!返回值必須是一對相反數,否則無效。jdk1.7以後就是這樣。 else return -1; } catch (Exception e) { e.printStackTrace(); } return
1; } }; Collections.sort(list, c); return list; } }