java 根据 ASCII 码表顺序升序排列
原理通过sort()方法排序。
/*** 反射拼接类的属性值
*
* @return
*/
private String getAscOrderString() {
Object object = this;
String rawString = "";
Map<String, String> map = new HashMap<String, String>();
//获取所有的属性组
Field[] superField = this.getClass().getSuperclass().getDeclaredFields();
Field[] selfField = this.getClass().getDeclaredFields();
List<Field> allfield = new ArrayList();
allfield.addAll(Arrays.stream(superField).collect(Collectors.toList()));
allfield.addAll(Arrays.stream(selfField).collect(Collectors.toList()));
for (int i = 0; i < allfield.size(); i++) {
Field field = allfield.get(i);
String fieldName = field.getName();
if (Objects.nonNull(field.getAnnotation(JSONField.class))) {
fieldName = field.getAnnotation(JSONField.class).name();
}
field.setAccessible(true);
String valString;
try {
if (field.get(object) == null) {
valString = "";
} else {
valString = field.get(object).toString();
}
map.put(fieldName, valString);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Collection<String> keyset = map.keySet();
List list = new ArrayList<String>(keyset);
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
if (i == (list.size() - 1)) {
if (!StringUtils.isEmpty(map.get(list.get(i)))) {
rawString += list.get(i) + "=" + map.get(list.get(i));
}
} else {
if (!StringUtils.isEmpty(map.get(list.get(i)))) {
rawString += list.get(i) + "=" + map.get(list.get(i)) + "&";
}
}
}
return rawString;
}
以上是 java 根据 ASCII 码表顺序升序排列 的全部内容, 来源链接: utcz.com/z/392801.html