【Java】常用方法合集

以 DemoVo 为实体

import lombok.Data;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;@Data
@ExcelIgnoreUnannotated
public class ExportPromoteUnitResult {private String id;@ExcelProperty(value = "学号")private String stuNo;@ExcelProperty(value = "姓名")private String stuName;
}
  1. 将一个实体的属性名取出来,整合为一个 List<String[]>格式
    private static List<String[]> getData() {// new一个实体DemoVoDemoVo demo = new DemoVo();List<String[]> propertyNames = getPropertyNames(demo);return propertyNames;}public static List<String[]> getPropertyNames(Object obj) {List<String[]> properties = new ArrayList<>();Class<?> clazz = obj.getClass(); // 获取对象的Class对象Field[] fields = clazz.getDeclaredFields(); // 获取所有字段for (Field field : fields) {if (field.isAccessible()) { // 如果字段可访问,则添加其名称到列表中(对于私有字段可能需要设置可访问)properties.add(new String[]{field.getName()}); // 将属性名添加到List<String[]>中,每个String[]包含一个属性名} else {field.setAccessible(true); // 对于私有字段,需要设置可访问才能获取其名称(注意:这可能会破坏封装性)properties.add(new String[]{field.getName()}); // 添加属性名到List<String[]>}}return properties; // 返回包含所有属性名的List<String[]>}
  1. 将一个实体的属性名整合为 List< String > 格式
	// new一个实体DemoVo,取出属性名DemoVo demo = new DemoVo();List<String[]> propertyNames = getPropertyNames(demo.getClass());System.out.print("propertyNames的输出结果为:" + propertyNames); // propertyNames的输出结果为:[id,stuNo,stuName]// 获取实体类的所有字段名public List<String> getPropertyNames(Class<?> clazz) {Field[] fields = clazz.getDeclaredFields(); // 获取所有字段List<String> propertyNames = new ArrayList<>(); // 新建一个数组propertyNamesfor (Field field : fields) {propertyNames.add(field.getName()); // 将所有字段放于数组propertyNames中}return propertyNames;}
  1. 根据属性名/字段名获取对应的值
    List<Map<String, Object>> maps = combinFixedLists(stuClassId);System.out.print("maps的输出结果为:" + maps);// maps的输出结果为:[{id=1,stuNo="2024001",stuName="李四",stuSex="1"},{id=2,stuNo="2024002",stuName="张三",stuSex="1"}]private List<Map<String, Object>> combinFixedLists(Long stuClassId) throws IllegalAccessException, NoSuchFieldException {// 先根据stuClassId查询数据,此处不过多写sql语句了List<StudentClassResult> listObjects = this.queryStuResult(stuClassId);System.out.print("假如得出的结果为:" + listObjects);// 假如得出的结果为:[{id:1,stuNo:"2024001",stuName:"李四",stuSex:"1"},{id:2,stuNo:"2024002",stuName:"张三",stuSex:"1"}]List<Map<String, Object>> combinedList = new ArrayList<>();for (StudentClassResult object : listObjects) {Map<String, Object> fieldMap = new HashMap<>();Field[] fields = object.getClass().getDeclaredFields();for (Field field : fields) {String name = field.getName();field.setAccessible(true);fieldMap.put(field.getName(), field.get(object));}combinedList.add(fieldMap);}return combinedList;}
  1. 去掉List< String >中指定元素
	removePropertyFromString(propertyNames, "id");// 去掉指定属性名private static void removePropertyFromString(List<String> fixList, String fixElement) {Iterator<String> iterator = fixList.iterator();while (iterator.hasNext()) {String next = iterator.next();if (next == fixElement) {iterator.remove();}}}
  1. 取出JSON中的某属性名对应的属性值
	System.out.print(stuData)// stuData={"stuData":{"stuId":57,"photoList":{"fileName":["照片.png"],"filePath":["/qcbucket/2024/10/22/01.照片.png"]},"stuClassId":"3","stuName":"张三"}}Object stuId = null;Object photoList = null;Object stuClassId = null;Object stuName = null;JSONObject jsonObject = JSONObject.parseObject(stuData.toString());stuId = jsonObject.getJSONObject("stuData").get("stuId ");// 57photoList = jsonObject.getJSONObject("stuData").get("photoList");// "fileName":["照片.png"],"filePath":["/qcbucket/2024/10/22/01.照片.png"]stuClassId = jsonObject.getJSONObject("stuData").get("stuClassId");// "3"stuName = jsonObject.getJSONObject("stuData").get("stuName");// "张三"
  1. 保留两位数

(1)setScale

String num = "123.4567";
BigDecimal val = new BigDecimal(num);
BigDecimal roundedVal = val.setScale(2, RoundingMode.HALF_UP);
System.out.println(roundedVal); // 输出: 123.46

(2)sql语句

在这里插入图片描述

  1. 原数组 String[] originalArray,在指定元素后添加n个空字符串 “”
    // 原数组originalArray = new String[]{"apple","banana"}// 查找指定字符串String[] target = {"apple"}// 在指定字符串后追加num个 空字符串int num = 2;String[] array = modifyArray(originalArray, target, num);System.out("array的结果为:" + array);// array的结果为:["apple","","","banana"]private static String[] modifyArray(String[] originalArray, String[] target, int n) {List<String> resultList = new ArrayList<>();for (String element : originalArray) {resultList.add(element);for (String add : target) {if (element.equals(add)) {for (int i = 0; i < n; i++) {resultList.add("");}}}}return resultList.toArray(new String[0]);}
  1. 获取 resources 下 指定文件的路径
    在这里插入图片描述
URL resource = getClass().getClassLoader().getResource("ip2region.xdb");
String XDB_PATH = resource.getPath();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【经验】无线鼠标、键盘的usb接收器配对

1、鼠标 以B.O.W航世无线鼠标&#xff08;型号MW157&#xff09;为例&#xff0c;配对USB接收器的步骤如下&#xff1a; 1&#xff09;鼠标关机后&#xff0c;USB接收器 取下来 &#xff0c;重新插上去&#xff1b; 2&#xff09;先按住“鼠标右键”&#xff0c;再按住“鼠标滚…

论文解读《Order-Agnostic Data Augmentation for Few-Shot Named Entity Recognition》

论文解读系列文章目录 文章目录 论文解读系列文章目录一、现有的NER DA技术要么对单词进行基于规则的操作&#xff0c;从而破坏句子的语义连贯性&#xff0c;要么利用生成模型进行实体或上下文的替换&#xff0c;这需要大量的标注数据&#xff0c;且与在低资源环境中操作的目标…

学习莫烦python---神经网络

一、卷积神经网络区别 1、“卷积” 和 “神经网络”. 卷积也就是说神经网络不再是对每个像素的输入信息做处理了,而是图片上每一小块像素区域进行处理, 这种做法加强了图片信息的连续性. 使得神经网络能看到图形, 而非一个点. 这种做法同时也加深了神经网络对图片的理解 –翻译…

项目结构(后端+前端)(若依)

项目结构&#xff08;后端前端&#xff09; 文章目录 项目结构&#xff08;后端前端&#xff09;前言一、后端结构1.若依 二、前端结构1. 总结 前言 方便了解项目结构 提示&#xff1a;以下是本篇文章正文内容&#xff1a; 一、后端结构 1.若依 com.ruoyi ├── ruoyi-adm…

Eclipse Java 构建路径

Eclipse Java 构建路径 Eclipse 是一款广受欢迎的集成开发环境(IDE),特别适用于 Java 开发。在 Eclipse 中,构建路径(Build Path)是指编译器在编译项目时搜索类(.class)文件和源代码(.java)文件的路径。正确设置构建路径对于确保项目能够顺利编译和运行至关重要。 …

SQL语句高级查询(适用于新手)

SQL查询语句的下载脚本链接&#xff01;&#xff01;&#xff01; 【免费】SQL练习资源-具体练习操作可以查看我发布的文章资源-CSDN文库https://download.csdn.net/download/Z0412_J0103/89908378 本文旨在为那些编程基础相对薄弱的朋友们提供一份详尽的指南&#xff0c;特别聚…

在 Windows 环境下,Git 默认会自动处理 CRLF 和 LF 之间的转换。

在 Windows 环境下&#xff0c;Git 默认会自动处理 CRLF 和 LF 之间的转换。 要确保这一点并自动处理换行符差异&#xff0c;你可以按照以下步骤配置 1. 配置 Git 自动转换 CRLF 使用 Git Bash 或命令行执行以下命令&#xff0c;设置 Git 自动处理换行符&#xff1a; git con…

Linux系统硬件性能监控常用命令

ECS系统指南之Linux系统诊断免费在线阅读_藏经阁-阿里云开发者社区 排查Linux系统中的硬件故障是一个系统化的过程&#xff0c;涉及到对不同硬件组件的检查和分析。以下是排查硬件故障的详细步骤&#xff1a; 1. 使用系统日志和诊断工具 dmesg: 运行 dmesg 命令查看内核消息缓…

【C++篇】栈的层叠与队列的流动:在 STL 的节奏中聆听算法的静谧旋律

文章目录 C 栈与队列详解&#xff1a;基础与进阶应用前言第一章&#xff1a;栈的介绍与使用1.1 栈的介绍1.2 栈的使用1.2.1 最小栈1.2.2 示例与输出 1.3 栈的模拟实现 第二章&#xff1a;队列的介绍与使用2.1 队列的介绍2.2 队列的使用2.2.1 示例与输出 2.3 队列的模拟实现2.3.…

Java项目-基于spingboot框架的篮球论坛系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

【计算机网络 - 基础问题】每日 3 题(四十九)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

从Excel文件中提取HTTP链接并在浏览器中打开

本文介绍了一段Python代码&#xff0c;使用openpyxl库从Excel文件中提取包含HTTP或HTTPS链接的单元格&#xff0c;并在默认浏览器中打开这些链接。 使用说明 确保安装openpyxl库&#xff0c;可以使用以下命令安装&#xff1a; pip install openpyxl选择包含链接的Excel文件&…

黑盒测试和白盒测试的具体方法(附加实际应用中的技巧和注意事项)

黑盒测试的具体方法 黑盒测试有多种具体的方法&#xff0c;以下是几种常见的黑盒测试技术&#xff1a; 等价类划分 定义&#xff1a;将输入数据划分为若干等价类&#xff0c;每个等价类中的数据被认为是等效的。目的&#xff1a;减少测试用例数量&#xff0c;同时覆盖所有可…

帝国CMS7.0 7.2 7.5微信登录插件

这款帝国cms微信登录插件&#xff0c;非常方便&#xff0c;新手式设置。 使用方法&#xff1a; 1、将文件夹拷贝到 /e/memberconnect 2、访问 /e/memberconnect/weixin/install/ 进行安装 3、登陆后台 用户–>外部接口–>管理外部登陆接口 输入 appid、appkey 4、前台链…

MATLAB人脸考勤系统

MATLAB人脸考勤系统课题介绍 该课题为基于MATLAB平台的人脸识别系统。传统的人脸识别都是直接人头的比对&#xff0c;现实意义不大&#xff0c;没有一定的新意。该课题识别原理为&#xff1a;先采集待识别人员的人脸&#xff0c;进行训练&#xff0c;得到人脸特征值。测试的时…

三维重建新范式对比与发展趋势

1.概述 本文重点对比三维视觉的新范式&#xff0c;主要是NeRF与 3D gausslain splatting在3维重建发展的趋势进行对比与说明。 2.NeRF趋势 3.3D GS趋势 4.动态场景重建的趋势

【计网笔记】应用层

应用层服务传输层协议端口号DNSTCP或UDP53FTPTCP20或21TELNETTCP23HTTPTCP80HTTPSTCP443SMTPTCP25POP3TCP110IMAPTCP143MIME//DHCPUDP67SNMPUDP161 域名系统DNS 使用具有一定语义的域名来助记IP地址 一个域名可能有多个IP地址 服务器农场 前端调配请求去不同的服务器不同服务…

机器学习面试笔试知识点之K近邻算法(KNN)、最大期望算法(EM)

机器学习面试笔试知识点之K近邻算法KNN、最大期望算法EM 一、K近邻算法(KNN)&#xff08;监督学习算法&#xff09;1. 什么是KNN1.1 KNN的通俗解释1.2 近邻的距离度量1.3 K值选择1.4 KNN最近邻分类算法的过程 2.KDD的实现&#xff1a;KD树2.1 构建KD树2.2 KD树的插入2.3 KD树的…

vue 项目i18n国际化,快速抽离中文,快速翻译

国际化大家都知道vue-i18n 实现的&#xff0c;但是有个问题&#xff0c;就是繁杂的抽离中文字符的过程&#xff0c;以及翻译中文字符的过程&#xff0c;关于这个有些小工具可以希望可以帮到大家 1.安装vue-i18n npm i vue-i18n8.22.22.ElementUI多语言配置 在src目录下创建…

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第六篇-阶段总结篇】

因为马上就要进入下一个阶段&#xff0c;制作动态编辑体积纹理的模块。 但在这之前&#xff0c;要在这一章做最后一些整理。 首先&#xff0c;我们完成没完成的部分。其次&#xff0c;最后整理一下图表。最后&#xff0c;本文附上正在用的贴图 完善Shader 还记得我们之前注…