当前位置:网站首页>Tool class: object to map hump to underline underline hump
Tool class: object to map hump to underline underline hump
2022-07-07 06:57:00 【Wandering elephant】
package com.esint.gaplatform.sjxxdataxjclgs.util;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Obj2map {
public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException {
Map<String, Object> map = new HashMap<String, Object>();
Class<?> clazz = obj.getClass();
for (Field field : clazz.getDeclaredFields()) {
field.setAccessible(true);
String fieldName = field.getName();
String field_name = humpToLine(fieldName);
Object value = field.get(obj);
map.put(field_name, value);
}
return map;
}
private static Pattern linePattern = Pattern.compile("_(\\w)");
private static Pattern humpPattern = Pattern.compile("[A-Z]");
/** * Hump underline , Finally capitalize * @param str * @return */
public static String humpToLine(String str) {
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString().toUpperCase();
}
/** * Underline to hump , Normal output * @param str * @return */
public static String lineToHump(String str) {
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString();
}
}
边栏推荐
- Networkx绘图和常用库函数坐标绘图
- ViewModelProvider.of 过时方法解决
- 一条慢SQL拖死整个系统
- [noi simulation] regional division (conclusion, structure)
- Data of all class a scenic spots in China in 2022 (13604)
- How to find the literature of a foreign language journal?
- How to share the same storage among multiple kubernetes clusters
- ip地址那点事
- 企業如何進行數據治理?分享數據治理4個方面的經驗總結
- Postgresql源码(60)事务系统总结
猜你喜欢

Prompt for channel security on the super-v / device defender side when installing vmmare

jdbc数据库连接池使用问题

From zero to one, I will teach you to build the "clip search by text" search service (2): 5 minutes to realize the prototype

7天零基础能考证HCIA吗?华为认证系统学习路线分享

MATLAB小技巧(30)非线性拟合 lsqcurefit

Data of all class a scenic spots in China in 2022 (13604)

SolidWorks的GB库(钢型材库,包括铝型材、铝管等结构)安装及使用教程(生成铝型材为例)

偏执的非合格公司

Comment les entreprises gèrent - elles les données? Partager les leçons tirées des quatre aspects de la gouvernance des données

JWT的基础介绍
随机推荐
2022/07/04学习记录
什么情况下考虑分库分表
【解决】Final app status- UNDEFINED, exitCode- 16
ESXI挂载移动(机械)硬盘详细教程
快速定量,Abbkine 蛋白质定量试剂盒BCA法来了!
企業如何進行數據治理?分享數據治理4個方面的經驗總結
Unity C# 函数笔记
Brand · consultation standardization
大咖云集|NextArch基金会云开发Meetup来啦
请教一个问题,flink oracle cdc,读取一个没有更新操作的表,隔十几秒就重复读取全量数据
健身房如何提高竞争力?
Stack and queue-p78-8 [2011 unified examination true question]
Under what circumstances should we consider sub database and sub table
Navicat importing 15g data reports an error [2013 - lost connection to MySQL server during query] [1153: got a packet bigger]
Stack and queue-p79-9
请问 flinksql对接cdc时 如何实现计算某个字段update前后的差异 ?
LM small programmable controller software (based on CoDeSys) Note 23: conversion of relative coordinates of servo motor operation (stepping motor) to absolute coordinates
[solution] final app status- undefined, exitcode- 16
带你刷(牛客网)C语言百题(第一天)
Performance comparison between Ceres solver and g2o