V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  jsonnnnnn  ›  全部回复第 1 页 / 共 1 页
回复总数  4
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   ·   实用小工具   ·   2852 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 14:42 · PVG 22:42 · LAX 06:42 · JFK 09:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.