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("-", "");
}
}
相关推荐
Common.Utility-公共类.zip
.net 最全的Helper
CommonUtil类
ComonUtil
CommonUtil:日常通用的工具类
CommonUtil 日常通用的工具类
【亲测免费】 探索Common.Utility:一个实用的.NET工具库
探索Common.Utility:一个实用的.NET工具库 在软件开发中,有一款高效的工具库可以显著提升开发效率和代码质量。今天,我们将深入探讨一个名为的开源.NET工具库,它为开发者提供了一系列常用的辅助函数和类,简化了日常编码工作。 项目简介 Common.Utility是由Jimmey-Jiang维护的一个.NET框架下的通用工具集,旨在解决常见的编程问题并提供便捷的解决方案。这个项目以简洁...
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等云端工具的绝佳平替方案,尤其适合注重数据隐私的教育工作者、研究者及小团队。
android实用技巧系列之顶部输入框的实现
这篇文章将记录如何实用dialog实现
MaxENT生态位模型实战:从数据准备到论文发表的完整指南
本文提供MaxENT生态位模型从数据准备到论文发表的完整实战指南,涵盖物种分布数据处理、环境变量筛选、参数优化及结果可视化等关键步骤。特别介绍如何通过R语言进行高级建模优化,提升模型AUC值,并分享海洋生物专题研究中的数据处理技巧。适合生态学研究者快速掌握这一强大的物种分布预测工具,产出高质量研究成果。
【岁月留声(Java)】公共类CommonUtil中不应该有公开的构造函数
公共类CommonUtil中不应该有公开的构造函数
京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略
本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。
AOSP14 Launcher3——手势上滑关键类AbsSwipeHandler解析
通过精密的事件监听、状态管理和对系统动画 API 及 Launcher 内部组件的协调,实现了复杂而流畅的手势导航体验。它的抽象设计允许子类(如。是 Quickstep (Launcher3 的手势导航实现) 中处理。的核心逻辑抽象基类。这个非常核心且复杂的类。)定制特定的回家动画逻辑。好的,我们来深入分析。
js学习之道:表单验证公共js
[javascript] view plaincopy /** 文件名称:CommonUtil.js 作者 : Yuce 编制时间: 2010-03-24 文件内容:一些常用的js公用类。工具类 包括方法: g_FormFieldIsNull 判断DBForm的指定字段是否为空 g_GetObjXY 获取页面
PHM 2010数据集解读
PHM数据挑战赛是一项面向所有潜在与会者的竞赛。今年的挑战集中在使用测力仪、加速度计和声发射数据估计高速数控铣床刀具的RUL上。 博客对PHM 2010数据集的组成和信号进行了可视化。
DBUtils工具类
DBUtils工具类 import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import jav...
论文阅读:Universal and Transferable Adversarial Attacks on Aligned Language Models. LLM Attacks
因为“即开即用”的大型语言模型能够生成大量令人反感的内容,近期的工作集中在对这些模型进行对齐,以防止不受欢迎的生成。尽管在规避这些措施方面取得了一些成功——即所谓的针对大型语言模型(LLMs)的“越狱”——这些攻击需要大量的人类智慧,并且在实践中很脆弱。自动对抗性提示生成的尝试也取得了有限的成功。在本文中,我们提出了一种简单有效的攻击方法,可以导致对齐的语言模型生成令人反感的行为。
LOFIC / 全局快门在移动端的可行性:曝光容限、读出噪声与算力预算
手机端引入 LOFIC 与全局快门的核心权衡在于:在有限像素面积与功耗下,如何换取更高的动态范围与运动场景鲁棒性。LOFIC 通过侧向溢流到积分电容扩大满井并保持较高转换增益,全局快门在帧内一次性采样消除行时序伪影,但需付出像素填充率、读出噪声与片上存储功耗的代价。本文以工程可实操为目标,给出像素与读出链的简化模型、曝光损益测算、数据率与带宽估算、端到端算力与热预算方法,配套寄存器配置流程、帧内/帧间切换策略与验证清单,帮助在真实移动 SoC 与 ISP 约束下完成可行性评估与原型落地。
android通用工具类,android通用常用工具类
public class CommonUtil {public static boolean hasSDCard() {String status = Environment.getExternalStorageState();return status.equals(Environment.MEDIA_MOUNTED);}/*** 获取最大内存** @return*/public static ...
超详细的Burp Suite安装使用
Burp Suite是一个强大的Web应用安全测试工具,适用于网络安全专业人士进行自动化网络应用程序的安全测试。 它提供了在Windows和Kali Linux上安装和激活Burp Suite Professional的简便步骤,帮助用户快速集成并启用强大的网络扫描和渗透测试功能。Burp Suite的特点包括易于安装、良好的兼容性、内置的自动化工具、优秀的用户体验以及详细的教程,使得无论是安全领域的新手还是经验丰富的专家,都能轻松上手并高效地进行安全测试。此外,Burp Suite还支持扩展功能的使用
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
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.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工具类,并分享了在**数据校验**和*
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...
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
7月14 Enity对象的抽取
新增、修改对象时对公共属性进行操作 操作枚举 public enum OperatotType { /** * Create */ Create(1), /** * Update */ Update(2), /** * Delete ...
java-common-utils
demo
Android android-common 工具
本文内容 环境android-common 项目结构演示 android-common参考资料 adnroid-common 主要包括如下内容: 缓存,包括图片缓存、预取缓存、网络缓存公共 View,即功能封装好的部件,包括下拉获得最新和上拉加载更多 ListView、底部加载更多 ScrollView、滑动一页 Gallery常用工具类,包括网络、下载、资源操作、shell、文
1197



被折叠的 条评论
为什么被折叠?



