公共的工具类CommonUtil

package com.yxb.base.util;
import com.alibaba.fastjson.JSON;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;

public class CommonUtil {
    public CommonUtil() {
    }

    public static String getIp(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
            int index = ip.indexOf(",");
            return index != -1 ? ip.substring(0, index) : ip;
        } else {
            ip = request.getHeader("X-Real-IP");
            return StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip) ? ip : request.getRemoteAddr();
        }
    }

    public static <T> String beanToString(T value) {
        if (value == null) {
            return null;
        } else {
            Class<?> clazz = value.getClass();
            if (clazz != Integer.TYPE && clazz != Integer.class) {
                if (clazz == String.class) {
                    return (String)value;
                } else {
                    return clazz != Long.TYPE && clazz != Long.class ? JSON.toJSONString(value) : "" + value;
                }
            } else {
                return "" + value;
            }
        }
    }

    public static <T> T stringToBean(String str, Class<T> clazz) {
        if (str != null && str.length() > 0 && clazz != null) {
            if (clazz != Integer.TYPE && clazz != Integer.class) {
                if (clazz == String.class) {
                    return str;
                } else {
                    return clazz != Long.TYPE && clazz != Long.class ? JSON.toJavaObject(JSON.parseObject(str), clazz) : Long.valueOf(str);
                }
            } else {
                return Integer.valueOf(str);
            }
        } else {
            return null;
        }
    }

    public static Object getFieldValueByName(String fieldName, Object o) {
        if (o == null) {
            return null;
        } else {
            try {
                String firstLetter = fieldName.substring(0, 1).toUpperCase();
                String getter = "get" + firstLetter + fieldName.substring(1);
                Method method = o.getClass().getMethod(getter);
                Object value = method.invoke(o);
                return value;
            } catch (Exception var6) {
                return null;
            }
        }
    }

    public static String[] getFiledName(Object o) {
        Field[] fields = o.getClass().getDeclaredFields();
        String[] fieldNames = new String[fields.length];

        for(int i = 0; i < fields.length; ++i) {
            System.out.println(fields[i].getType());
            fieldNames[i] = fields[i].getName();
        }

        return fieldNames;
    }

    public static List<Map<String, String>> getFiledsInfo(Object o) {
        if (o == null) {
            return new ArrayList();
        } else {
            Field[] fields = o.getClass().getDeclaredFields();
            String[] fieldNames = new String[fields.length];
            List<Map<String, String>> list = new ArrayList();
            Map infoMap = null;

            for(int i = 0; i < fields.length; ++i) {
                infoMap = new HashMap();
                infoMap.put("type", fields[i].getType().toString());
                infoMap.put("name", fields[i].getName());
                list.add(infoMap);
            }

            return list;
        }
    }

    public static Object[] getFiledValues(Object o) {
        String[] fieldNames = getFiledName(o);
        Object[] value = new Object[fieldNames.length];

        for(int i = 0; i < fieldNames.length; ++i) {
            value[i] = getFieldValueByName(fieldNames[i], o);
        }

        return value;
    }

    public static void setProperty(Object obj, String PropertyName, Object value) {
        try {
            Class c = obj.getClass();
            Field f = c.getDeclaredField(PropertyName);
            f.setAccessible(true);
            f.set(obj, value);
        } catch (Exception var5) {
            var5.printStackTrace();
        }

    }

    public static String formatIDCard(String idCard) {
        return !StringUtil.isBlank(idCard) && !idCard.contains("****") && idCard.length() >= 15 ? idCard.substring(0, 6) + "********" + idCard.substring(14) : idCard;
    }

    public static String formatTelephone(String telePhone) {
        return !StringUtil.isBlank(telePhone) && !telePhone.contains("***") && telePhone.length() >= 8 ? telePhone.substring(0, 3) + "****" + telePhone.substring(7) : telePhone;
    }

    public static String formatBankCardNo(String cardNo) {
        return !StringUtil.isBlank(cardNo) && !cardNo.contains("****") && cardNo.length() >= 16 ? cardNo.substring(0, 5) + "**********" + cardNo.substring(15) : cardNo;
    }

    public static boolean checkIsBaseObject(Object param) {
        return param instanceof Integer || param instanceof String || param instanceof Double || param instanceof Float || param instanceof Long || param instanceof Boolean || param instanceof Date || param instanceof Byte || param instanceof Short;
    }

    public static Map<String, Object> ObjToMap(Object obj) {
        HashMap map = null;

        try {
            map = new HashMap();
            Field[] fields = obj.getClass().getDeclaredFields();
            Field[] var3 = fields;
            int var4 = fields.length;

            for(int var5 = 0; var5 < var4; ++var5) {
                Field field = var3[var5];
                field.setAccessible(true);
                map.put(field.getName(), field.get(obj));
            }
        } catch (SecurityException var7) {
            var7.printStackTrace();
        } catch (IllegalArgumentException var8) {
            var8.printStackTrace();
        } catch (IllegalAccessException var9) {
            var9.printStackTrace();
        }

        return map;
    }

    public static String randomUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }
}

常用工具类 - CommonUtils 2、校验实体类部分属性不能为空。 阅读详情

相关推荐

Common.Utility-公共类.zip

.net 最全的Helper

CommonUtil类

ComonUtil

黑科技的专栏 1197

CommonUtil:日常通用的工具类

CommonUtil 日常通用的工具类

【亲测免费】 探索Common.Utility:一个实用的.NET工具库

探索Common.Utility:一个实用的.NET工具库 在软件开发中,有一款高效的工具库可以显著提升开发效率和代码质量。今天,我们将深入探讨一个名为的开源.NET工具库,它为开发者提供了一系列常用的辅助函数和类,简化了日常编码工作。 项目简介 Common.Utility是由Jimmey-Jiang维护的一个.NET框架下的通用工具集,旨在解决常见的编程问题并提供便捷的解决方案。这个项目以简洁...

gitblog_00029的博客 948

CommonUtil:轻便简单的Java常用工具类库

目录 GZIPUtil(通过Gzip算法压缩和解压) CaptchaUtil(验证码工具类) UrlParamsUtil(对URL参数处理的工具类) LangArabicNumConvertUtil(语言数字与阿拉伯数字转换工具类) StringUtil(字符串工具类) EmailUtil(邮件发送工具类) XmlConfUtil(解析XMl配置工具类) 关于开源 Contributor 更新日志 概述 本仓库是Java开发常用工具类的总结,旨在追求给大家提供一个轻便简单的工具类库,同时能够cover住大家80%以上的工具类的需求。如果对你有用欢迎点个star,此外,如果你有兴趣和我一起维护该仓库,欢迎提PR或者issue,让我们为拥有一个更强大的工具库而一同努力。 导入项目 <dependency> <groupId>io.github.ljwlgl</groupId>

NotebookLM平替实测:用Open Notebook+Ollama零成本搭建私有AI知识库

本文提供了一份详细的实战指南,教你如何利用Open Notebook与Ollama,在本地零成本搭建一个功能强大且完全私有的AI知识库。通过Docker容器化部署,实现数据绝对安全、模型自由选择与离线运行,是NotebookLM等云端工具的绝佳平替方案,尤其适合注重数据隐私的教育工作者、研究者及小团队。

weixin_29052717的博客 515

android实用技巧系列之顶部输入框的实现

这篇文章将记录如何实用dialog实现

maincrelaber的专栏 882

MaxENT生态位模型实战:从数据准备到论文发表的完整指南

本文提供MaxENT生态位模型从数据准备到论文发表的完整实战指南,涵盖物种分布数据处理、环境变量筛选、参数优化及结果可视化等关键步骤。特别介绍如何通过R语言进行高级建模优化,提升模型AUC值,并分享海洋生物专题研究中的数据处理技巧。适合生态学研究者快速掌握这一强大的物种分布预测工具,产出高质量研究成果。

tensor9flow的博客 304

【岁月留声(Java)】公共类CommonUtil中不应该有公开的构造函数

公共类CommonUtil中不应该有公开的构造函数

Kida 的躺平小屋 1257

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1740

AOSP14 Launcher3——手势上滑关键类AbsSwipeHandler解析

通过精密的事件监听、状态管理和对系统动画 API 及 Launcher 内部组件的协调,实现了复杂而流畅的手势导航体验。它的抽象设计允许子类(如。是 Quickstep (Launcher3 的手势导航实现) 中处理。的核心逻辑抽象基类。这个非常核心且复杂的类。)定制特定的回家动画逻辑。好的,我们来深入分析。

Micheal_Yang's Blog 1521

js学习之道:表单验证公共js

[javascript] view plaincopy /**     文件名称:CommonUtil.js     作者  : Yuce     编制时间: 2010-03-24     文件内容:一些常用的js公用类。工具类     包括方法:     g_FormFieldIsNull    判断DBForm的指定字段是否为空     g_GetObjXY       获取页面

Java小迷的专栏 1821

PHM 2010数据集解读

PHM数据挑战赛是一项面向所有潜在与会者的竞赛。今年的挑战集中在使用测力仪、加速度计和声发射数据估计高速数控铣床刀具的RUL上。 博客对PHM 2010数据集的组成和信号进行了可视化。

cnjs1994的博客 7649

DBUtils工具类

DBUtils工具类 import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import jav...

weixin_30532759的博客 125

论文阅读:Universal and Transferable Adversarial Attacks on Aligned Language Models. LLM Attacks

因为“即开即用”的大型语言模型能够生成大量令人反感的内容,近期的工作集中在对这些模型进行对齐,以防止不受欢迎的生成。尽管在规避这些措施方面取得了一些成功——即所谓的针对大型语言模型(LLMs)的“越狱”——这些攻击需要大量的人类智慧,并且在实践中很脆弱。自动对抗性提示生成的尝试也取得了有限的成功。在本文中,我们提出了一种简单有效的攻击方法,可以导致对齐的语言模型生成令人反感的行为。

CSPhD-winston的博客 1418

LOFIC / 全局快门在移动端的可行性:曝光容限、读出噪声与算力预算

手机端引入 LOFIC 与全局快门的核心权衡在于:在有限像素面积与功耗下,如何换取更高的动态范围与运动场景鲁棒性。LOFIC 通过侧向溢流到积分电容扩大满井并保持较高转换增益,全局快门在帧内一次性采样消除行时序伪影,但需付出像素填充率、读出噪声与片上存储功耗的代价。本文以工程可实操为目标,给出像素与读出链的简化模型、曝光损益测算、数据率与带宽估算、端到端算力与热预算方法,配套寄存器配置流程、帧内/帧间切换策略与验证清单,帮助在真实移动 SoC 与 ISP 约束下完成可行性评估与原型落地。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1140

android通用工具类,android通用常用工具类

public class CommonUtil {public static boolean hasSDCard() {String status = Environment.getExternalStorageState();return status.equals(Environment.MEDIA_MOUNTED);}/*** 获取最大内存** @return*/public static ...

weixin_30882521的博客 194

超详细的Burp Suite安装使用

‌Burp Suite是一个强大的Web应用安全测试工具,适用于网络安全专业人士进行自动化网络应用程序的安全测试。‌ 它提供了在Windows和Kali Linux上安装和激活Burp Suite Professional的简便步骤,帮助用户快速集成并启用强大的网络扫描和渗透测试功能。Burp Suite的特点包括易于安装、良好的兼容性、内置的自动化工具、优秀的用户体验以及详细的教程,使得无论是安全领域的新手还是经验丰富的专家,都能轻松上手并高效地进行安全测试。此外,Burp Suite还支持扩展功能的使用

Dreams°的博客 2643

Java Date类型格式化,不同日期格式转换,获取N天后的日期,CommonUtil工具

文章目录Date类型格式化为字符串不同日期格式的字符串之间的转换获取N天后的日期 Date类型格式化为字符串 java 日期格式化-- SimpleDateFormat 的使用。字符串转日期,日期转字符串 不同日期格式的字符串之间的转换 //日期字符串 各种格式之间转换 , 如: 20200101 转换 2020-01-01 2020年01月01日等 public static String dateStrFormat(String str,String srcFormat,String

技术改变世界 2347

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java项目实战:Utility工具类设计原则与核心实现详解

在软件开发中,Utility工具类是提升代码复用性和可维护性的关键设计模式。其核心原理在于遵循单一职责原则,将通用、无状态的公共方法集中管理,实现高内聚、低耦合。这种设计模式的技术价值在于能显著减少重复代码,提高开发效率,并确保线程安全与易于测试。在实际应用场景中,工具类广泛应用于字符串处理、数据校验、金额计算、日期操作和集合处理等基础功能模块。本文以Java房屋出租系统为例,深入探讨了如何结合Apache Commons Lang等成熟库,设计一套健壮的Utility工具类,并分享了在**数据校验**和*

weixin_30617797的博客 409

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IDCM项目学习笔记

项目介绍: IDCM:Internet Data center monitoring 网络数据中心监控平台 IRP:Information Resource planing 信息资源规划 1.设置表中公共字段 在业务逻辑的表中,都有五个公共字段,如下: `gmt_create` datetime NOT NULL COMMENT '数据新增时间', `creator...

angjiu8534的博客 283

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

7月14 Enity对象的抽取

新增、修改对象时对公共属性进行操作 操作枚举 public enum OperatotType { /** * Create */ Create(1), /** * Update */ Update(2), /** * Delete ...

weixin_30896763的博客 93

java-common-utils

demo

Snowprincev的博客 692

Android android-common 工具

本文内容 环境android-common 项目结构演示 android-common参考资料 adnroid-common 主要包括如下内容: 缓存,包括图片缓存、预取缓存、网络缓存公共 View,即功能封装好的部件,包括下拉获得最新和上拉加载更多 ListView、底部加载更多 ScrollView、滑动一页 Gallery常用工具类,包括网络、下载、资源操作、shell、文

sinat_14879443的博客 2589
上一篇: redis工具类
下一篇: 微信工具类
hit、run
博客等级 码龄10年 163粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值