首页 > 编程语言 >蛇形变量名(nake_case)速转驼峰变量名(camelCase)__Java

蛇形变量名(nake_case)速转驼峰变量名(camelCase)__Java

时间:2024-05-08 11:36:09浏览次数:24  
标签:case __ arr String field sb 变量名 append

最近遇到当JavaBean不遵循驼峰命名规则时,使用反射赋值失败。但是我的类中属性个数非常多(一个一个改也太恼火了),因此写了个将蛇形变量名转驼峰变量名的方法,在此分享出来供大家使用。

    public static void convertToCamelCase(Object obj) {
        Class<?> clazz = obj.getClass();
        Field[] declaredFields = clazz.getDeclaredFields();
        StringBuilder sb = new StringBuilder();
        for (Field field : declaredFields) {
            if (!field.getName().contains("_")) {
                sb.append(field.getName()).append("\n");
            } else {
                String[] arr = field.getName().split("_");
                for (int i = 0; i < arr.length; i++) {
                    if (i == 0) {
                        sb.append(arr[i]);
                    } else {
                        sb.append(Character.toUpperCase(arr[i].charAt(0)))
                                .append(arr[i].substring(1));
                    }
                }
                sb.append("\n");
            }
        }
        System.out.println(sb);
    }
public class Dog {
    private String dog_name;
    private String dog_age;
    private String dog_gender;
    private String dog_live_house;
}

public static void main(String[] args) {
    convertToCamelCase(new Dog());
}

运行结果

标签:case,__,arr,String,field,sb,变量名,append
From: https://www.cnblogs.com/ashet/p/18179331

相关文章

  • 【2024-05-05】连岳摘抄
    23:59槐柳成阴雨洗尘,樱桃乳酪并尝新。古来江左多佳句,夏浅胜春最可人。                                                 ——《初夏》宋·陆游人想辞职时,一般就会更......
  • xss漏洞
    xss漏洞的介绍:原理sql注入的本质是什么?就是把用户输入的数据不是正常的数据而是sql代码,然后被执行,Xss漏洞的原理其实就是前端写的有毛病,你能够自定义的去嵌入js代码让他去执行,讲的再明白一点就是,服务端把用户输入的数据当成前端代码去执行了  利用条件:用户输入的数据......
  • 【2024-05-04】连岳摘抄
    23:59我们的青年是一种正在不断成长、不断上升的力量,他们的使命是根据历史的逻辑来创造新的生活方式和生活条件。                                                 ——......
  • dump net core lldb 分析 (第五章 死循环调试分析)
    centos7lldb调试netcore应用的内存泄漏和死循环示例(dump文件调试)clrthreads-live先看看还在运行的线程有那些。然后通过threadselect线程编号(lldb命令)。来切换到当前线程。线程编号不是列表种的id字段,而是最前面一行的id。lldb可以通过threadlist命令来列举所有线程。......
  • 摄像头 --- OV5640
    帧率(frameratetiming)  图像窗口有效像素是2592*1944,总像素是2624*1956(非有效像素用来黑电平校准和插值)physicalpixelsize是 2624*19560x3800~0x3807设置ISPinput范围0x3810~0x3813进一步设置pre-scaling范围dataoutputsize由0x3808~0x380B设置,datao......
  • 5.7前端跨域CSRF和SSRF
    一、CSRF(跨站请求伪造)1、get类型(pikaqu靶场环境)前提:抓包获取请求地址,构造伪造请求站点,并保持用户登录状态点击伪造站点此时在其他主机,构造网站信息index.html文件,并伪造修改个人信息数据包;<scriptsrc='http://192.168.127.129:81/vul/csrf/csrfget/csrf_get_edit.php?sex=......
  • python教程6.3-json序列化
    序列化:dumps,编码,将python类型转成json对象反序列化:loads,解码,将json对象转成python对象pickle模块提供了四个功能:dumps、loads、dump、load(前2个操作变量,后2个操作文件)jsonjson模块也提供了四个功能:dumps、dump、loads、load,⽤法跟pickle⼀致。(前2个操作变量,后2个操作文件)......
  • 日常系统批处理优化案例(来源网络)
    @ECHOoffECHO关闭WindowsDefenderregadd"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsDefender"/v"DisableAntiSpyware"/d1/tREG_DWORD/fecho完成ECHO关闭Windows防火墙regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Polici......
  • ERROR: Failed to find vcvars
    ERROR:FailedtofindvcvarsTraceback(mostrecentcalllast):File"F:\code\chromium_git\chromium\src\cef\tools\\make_distrib.py",line954,in<module>combine_libs(platform,src_dir,sandbox_libs,File"F:\code\c......
  • redisearch 安装和使用
    方式一:源码编译安装(未成功)能找到的文档基本都是这一套,但是编译过程中会遇到各种坑,make版本,其他依赖问题,尝试解决无果。#--recursive选项递归下载子模块依赖gitclone--recursivehttps://github.com/RediSearch/RediSearch.gitmakesetupmakebuild#在redis.conf最后......