public static void main(String[] args) {
List<String> fields = new ArrayList<>();
fields.add("age");
fields.add("name");
fields.add("cardList.cardNumber");
fields.add("cardList.createDate");
fields.add("cardList.cardType.name");
fields.add("cardList.cardType.pwdType");
fields.add("cardList.cardType.enabled");
Map<String, Object> stringObjectMap = BaseCurrentResource.fields2map(fields);
}
public static Map<String, Object> fields2map(List<String> fields) {
Map<String, Object> map = new HashMap<>();
for (String field : fields) {
if (field.contains(".")) {
String[] splits = field.split("\\.");
field2tree(map, splits, 0, splits.length);
} else {
map.put(field, null);
}
}
return map;
}
public static Map<String, Object> field2tree(Map<String, Object> map, String[] fields, int i, int n) {
if (i >= n) {
return map;
}
if (map == null) {
map = new HashMap<>();
}
if (i == n - 1) {
map.put(fields[i], null);
} else {
map.put(fields[i], field2tree((Map<String, Object>) map.get(fields[i]), fields, i + 1, n));
}
return map;
}