泛型还是很省代码的,所以有必要学会!
参考博客:https://www.cnblogs.com/coprince/p/8603492.html
参考的具体内容:
我实际中使用:
1.无返回值方法
public<T> void sortAction(List<CsUserLabelListVO<T>> userLabelListVOList, List<String> classifyNames) {
Map<String, Integer> classifyRankMap = userLabelDubboService.queryLabelclassifiyByClassifyNames(classifyNames);
for (CsUserLabelListVO<T> csUserLabelListVO : userLabelListVOList) {
csUserLabelListVO.setRank(classifyRankMap.get(csUserLabelListVO.getClassifiyName()));
}
ListUtils.sortByClassifyRank(userLabelListVOList);
}
2.静态方法
public class ListUtils {
public static <T> void sortByClassifyRank(List<CsUserLabelListVO<T>> userLabelListVOList) {
Collections.sort(userLabelListVOList, new Comparator<CsUserLabelListVO<T>>() {
@Override
public int compare(CsUserLabelListVO<T> o1, CsUserLabelListVO<T> o2) {
if (o1.getRank() > o2.getRank()) {
return 1;
}
if (o1.getRank() == o2.getRank()) {
return 0;
}
return -1;
}
});
}
}
3.类中使用
@Setter
@Getter
@ToString
public class CsUserLotListVO<T> implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 名称
*/
private String LotName;
/**
* 此分类名称下的lot
*/
private List<T> csUserLotList;
/**
* 此分类名称在此次查询中的排名
*/
private Integer rank;
}
注意<T>是一定要写的
泛型方法定义:<T>写在public与返回值中间!!!!