当前位置: 首页 > news >正文

【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();

相关文章:

【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 &qu…...

深入了解Vue Router:基本用法、重定向、动态路由与路由守卫的性能优化

文章目录 1. 引言2. Vue Router的基本用法2.1 基本配置 3. 重定向和命名路由的使用3.1 重定向3.2 命名路由 4. 在Vue Router中如何处理动态路由4.1 动态路由的概念4.2 如何处理动态路由4.3 动态路由的懒加载 5. 路由守卫的实现与性能影响5.1 什么是路由守卫&#xff1f;5.2 路由…...

深入理解InnoDB底层原理:从数据结构到逻辑架构

💡 无论你是刚刚踏入编程世界的新人,还是希望进一步提升自己的资深开发者,在这里都能找到适合你的内容。我们共同探讨技术难题,一起进步,携手度过互联网行业的每一个挑战。 📣 如果你觉得我的文章对你有帮助,请不要吝啬你的点赞👍分享💕和评论哦! 让我们一起打造…...

Linux介绍及操作命令

Linux 是一种开源的操作系统,具有以下特点和优势: 一、稳定性和可靠性 内核稳定 Linux 内核经过多年的发展和优化,具有高度的稳定性。它能够长时间运行而不出现崩溃或故障,适用于服务器和关键任务应用。内核的稳定性得益于其严格的开发流程和质量控制,以及全球开发者社区…...

JS | 详解图片懒加载的6种实现方案

一、什么是懒加载&#xff1f; 懒加载是一种对网页性能优化的方式&#xff0c;比如&#xff0c;当访问一个网页的时候&#xff0c;优先显示可视区域的图片而不是一次加载全部的图片&#xff0c;当需要显示时&#xff0c;再发送请求加载图片。 懒加载 &#xff1a;延迟加载&…...

Java | Leetcode Java题解之第502题IPO

题目&#xff1a; 题解&#xff1a; class Solution {public int findMaximizedCapital(int k, int w, int[] profits, int[] capital) {int n profits.length;int curr 0;int[][] arr new int[n][2];for (int i 0; i < n; i) {arr[i][0] capital[i];arr[i][1] profi…...

JavaWeb学习(3)

目录 一、9大内置对象 二、JavaBean 三、MVC三层架构 Model View Controller&#xff08;Servlet&#xff09; 四、Filter&#xff08;过滤器&#xff09; 应用一&#xff1a;处理中文乱码 应用二&#xff1a;登录验证 五、监听器 六、JDBC 一、9大内置对象 PageCont…...

【含开题报告+文档+PPT+源码】基于SpringBoot的百货商城管理系统的设计与实现

开题报告 随着互联网技术的快速发展和电子商务的兴起&#xff0c;网上购物已成为人们日常生活中不可或缺的一部分。传统的实体店面由于时间和空间的限制&#xff0c;无法满足消费者对于便捷、快速、个性化购物体验的需求。在此背景下&#xff0c;基于 Java 的网上商城系统应运…...

Elasticsearch 实战应用与优化策略研究

一、引言 1.1 研究背景 在当今大数据时代&#xff0c;数据量呈爆炸式增长&#xff0c;对数据的存储、检索和分析提出了更高的要求。Elasticsearch 作为一款强大的分布式搜索和分析引擎&#xff0c;在这个时代背景下显得尤为重要。 随着数据密集型应用场景的不断增加&#xf…...

植物大战僵尸杂交版游戏分享

植物大战僵尸杂交版游戏下载&#xff1a;夸克网盘分享 无捆绑之类的隐形消费&#xff0c;下载即玩...

ProteinMPNN中DecLayer类介绍

PositionWiseFeedForward 类的代码 class PositionWiseFeedForward(nn.Module):def __init__(self, num_hidden, num_ff):super(PositionWiseFeedForward, self).__init__()self.W_in = nn.Linear(num_hidden, num_ff, bias=True)self.W_out = nn.Linear(num_ff, num_hidden, …...

Flux.all 使用说明书

all public final Mono<Boolean> all(Predicate<? super T> predicate)Emit a single boolean true if all values of this sequence match the Predicate. 如果该序列中的所有值都匹配给定的谓词&#xff08;Predicate&#xff09;&#xff0c;则发出一个布尔值…...

DORA 机器人中间件学习教程(6)——激光点云预处理

文章目录 1 移植思路2 代码输入输出说明3 编写CmakeList.txt文件4 编写yml文件5 编译并启动节点参考资料 在DORA中通过驱动获取激光雷达数据后&#xff0c;激光点云预处理部分代码是参考了autoware官方代码并对其进行裁剪得到的&#xff0c;点云预处理主要包含三个节点&#xf…...

搜维尔科技:TechViz将您的协同项目评审提升到一个全新的高度

TechViz将您的协同项目评审提升到一个全新的高度 搜维尔科技&#xff1a; TechViz将您的协同项目评审提升到一个全新的高度...

Dinky 字段模式演变 PIPELINE 同步MySQL到Doris

背景 用Dinky数据平台 FlinkCDC收集Mysql BinLog 至 Doris 搭建实时数仓 问题 用Dinky CDCSOURCE 字段模式演变 整库同步Mysql到Doris 字段新增删除不生效 组件信息 Flink 1.17 FlinkCDC 3.1 dinky 1.1 Doris 2.1.6 Mysql 8.0Dinky MySQLCDC 整库到 Doris需要的依赖 Flink/…...

【Docker】Harbor 私有仓库和管理

目录 一、搭建本地私有仓库 二、harbor简介&#xff08;特性、构成、架构的数据流向&#xff09; 2.1 什么是Harbor 2.2 Harbor的特性 2.3 Harbor的构成 2.4 Harbor的工作原理&#xff08;运行流程&#xff09; 三、harbor部署以及配置文件 1. 部署 Docker-Compose 服…...

《重置MobaXterm密码并连接Linux虚拟机的完整操作指南》

目录 引言 一、双击MobaXterm_Personal_24.2进入&#xff0c;但是忘记密码。 那么接下来请跟着我操作。 二、点击此链接&#xff0c;重设密码。 三、下载完成后&#xff0c;现在把这个exe文件解压。注意解压要与MobaXterm_Personal_24.2.exe在同一目录下哦&#xff0c;不然…...

每天五分钟深度学习:逻辑回归和神经网络

本文重点 我们要开启深度学习的基础神经网络的学习进程了,但是在开启之前,我们先来回忆一下逻辑回归算法 逻辑回归 逻辑回归的前向传播公式为: 求出预测值a之后,进而求损失 以上就是逻辑回归模型,相信大家已经不是很陌生了,现在我们要学习神经网络了 神经网络和逻辑回…...

深度学习——线性神经网络(五、图像分类数据集——Fashion-MNIST数据集)

目录 5.1 读取数据集5.2 读取小批量5.3 整合所有组件 MNIST数据集是图像分类中广泛使用的数据集之一&#xff0c;但是作为基准数据集过于简单&#xff0c;在本小节将使用类似但更复杂的Fashion-MNIST数据集。 import torch import torchvision from torch.utils import data fr…...

音频声音怎么调大?将音频声音调大的几个简单方法

音频声音怎么调大&#xff1f;在现代生活中&#xff0c;音频内容无处不在&#xff0c;从在线课程和播客到音乐和电影&#xff0c;音频已经成为我们获取信息和娱乐的重要方式。然而&#xff0c;许多人在使用音频时可能会遇到一个常见问题&#xff1a;音频声音太小&#xff0c;无…...

HarmonyOS6 半年磨一剑 - RcTextarea 组件状态管理与禁用只读机制

文章目录 前言一、焦点状态机1.1 isFocused 驱动的 UI 变化1.2 焦点事件处理流程 二、禁用与只读的本质区别2.1 技术实现对比2.2 视觉表现差异2.3 清空按钮的保护逻辑 三、清空按钮的智能显示策略3.1 双重触发模式3.2 清空按钮的渲染位置3.3 清空操作的完整流程 四、自动聚焦与…...

Ice终极指南:3步打造Mac菜单栏的清爽工作空间

Ice终极指南&#xff1a;3步打造Mac菜单栏的清爽工作空间 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice Ice是一款专为macOS设计的强大菜单栏管理器&#xff0c;能够帮助用户有效整理和优化混乱的菜…...

告别纸上谈兵:用Wireshark抓包实战分析FlexRay帧格式(含CRC校验)

实战解析FlexRay帧格式&#xff1a;用Wireshark抓包验证CRC与网络管理向量 车载工程师们常遇到这样的困境&#xff1a;明明熟读FlexRay协议文档&#xff0c;面对真实总线数据时却无从下手。本文将带您用Wireshark完成从抓包到解析的全流程实战&#xff0c;重点破解Header CRC校…...

如何永久保存微信聊天记录?WeChatExporter 开源工具帮你解决数据备份难题

如何永久保存微信聊天记录&#xff1f;WeChatExporter 开源工具帮你解决数据备份难题 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾担心微信聊天记录会随着手机…...

吃透Linux/C++系统编程:文件与I/O操作从入门到避坑

合集 - LLM应用实战(17) 1. LLM应用实战&#xff1a;当KBQA集成LLM(二) 2024-04-25 2. LLM应用实战&#xff1a;当KBQA集成LLM 2024-04-11 3. LLM实战&#xff1a;LLM微调加速神器-Unsloth LLama3 2024-05-14 4. LLM实战&#xff1a;LLM微调加速神器-Unsloth Qwen1.5 2024-05…...

英飞凌TC387/TC264芯片GTM模块实战:如何用ARU实现灵活定时器配置

英飞凌TC387/TC264芯片GTM模块实战&#xff1a;如何用ARU实现灵活定时器配置 在嵌入式系统开发中&#xff0c;定时器资源的灵活配置一直是工程师面临的挑战。英飞凌TC387和TC264芯片内置的GTM&#xff08;Generic Timer Module&#xff09;模块&#xff0c;凭借其ARU&#xff0…...

Python量化交易终极指南:MOOTDX通达信数据接口深度解析与实战应用

Python量化交易终极指南&#xff1a;MOOTDX通达信数据接口深度解析与实战应用 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化交易和金融数据分析领域&#xff0c;高效、稳定的数据获取是成…...

别再死磕Release了!用Debug模式打包Qt exe,一次搞定所有dll依赖(附GPT脚本生成技巧)

用Debug模式打包Qt应用&#xff1a;绕过Release陷阱的高效解决方案 当Qt开发者第一次尝试将项目打包成可独立运行的exe文件时&#xff0c;绝大多数教程都会推荐使用Release模式编译。然而在实际操作中&#xff0c;Release模式可能会带来一系列难以排查的问题——从莫名其妙的崩…...

终极Mermaid在线编辑器指南:3分钟学会专业图表制作

终极Mermaid在线编辑器指南&#xff1a;3分钟学会专业图表制作 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

VS2019报错找不到ucrtbased.dll?3种修复方法实测有效(附文件下载)

VS2019报错找不到ucrtbased.dll&#xff1f;3种修复方法实测有效&#xff08;附文件下载&#xff09; Visual Studio 2019是微软推出的强大集成开发环境&#xff0c;但在使用过程中&#xff0c;不少开发者会遇到"找不到ucrtbased.dll"的报错问题。这个错误通常发生在…...