jsonnnnnn 最近的时间轴更新
jsonnnnnn

jsonnnnnn

V2EX 第 455877 号会员,加入于 2019-11-27 15:51:19 +08:00
jsonnnnnn 最近回复了
2020-04-30 11:43:18 +08:00
回复了 NoKey 创建的主题 程序员 那天看到一个名词, java6 程序员
看了下,果然大部分都是 j8 程序员。。
2020-04-24 15:03:04 +08:00
回复了 PlanZ 创建的主题 推广 GeekHub 上线公测,欢迎来玩。第一波活动送出两个 AirPods 2 ...
分母+1
2020-04-08 17:46:53 +08:00
回复了 jsonnnnnn 创建的主题 问与答 求助大佬!多字段排序问题。。
@popvlovs 我研究了下,已经搞定了。。谢谢
2020-04-08 17:45:50 +08:00
回复了 jsonnnnnn 创建的主题 问与答 求助大佬!多字段排序问题。。
研究了一下,,自定义了一个 comparator 搞定了。。

public class GoogleReportComparator implements Comparator<CampaignVO> {

private ArrayList<String> fieldList;

public GoogleReportComparator(ArrayList<String> fieldList) {
this.fieldList = fieldList;
}

@Override
public int compare(CampaignVO obj1, CampaignVO obj2) {

int compare = 0;
for (int i = 0; i < fieldList.size(); i++) {
compare = getCompare(obj1, obj2, i);

if (compare != 0) {
return compare;
}
}
return compare;
}

private int getCompare(CampaignVO obj1, CampaignVO obj2, int i) {
String filedValue1 = getCurrnetFiledValue(obj1, fieldList.get(i));
String filedValue2 = getCurrnetFiledValue(obj2, fieldList.get(i));
return filedValue1.compareTo(filedValue2);
}


private String getCurrnetFiledValue(CampaignVO campaignVO, String fieldName) {
StringBuffer sb = new StringBuffer();
sb.append("get");
sb.append(fieldName.substring(0, 1).toUpperCase());
sb.append(fieldName.substring(1));

try {
Method method = campaignVO.getClass().getMethod(sb.toString());

Object obj = method.invoke(campaignVO);
if (null == obj) {
return StringUtils.EMPTY;
} else {
return obj.toString();
}

} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
log.error("invoke method error::", e);
}
return StringUtils.EMPTY;
}
}
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1159 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 18:28 · PVG 02:28 · LAX 10:28 · JFK 13:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.