【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一个实体DemoVo
        DemoVo 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<>(); // 新建一个数组propertyNames
    	for (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 ");
    // 57
    photoList = 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]);
    }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构6——树与二叉树

在本专栏的前五篇中&#xff0c;我们学习了顺序表、链表、栈和队列&#xff0c;他们本质上都是线性表。有线性表就存在非线性表&#xff0c;现在我们就来学习一下结构更复杂的非线性表——树。 1. 树的概念与结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&…

Go语言Gin框架的常规配置和查询数据返回json示例

文章目录 路由文件分组查询数据库并返回jsonservice层controller路由运行效果 启动多个服务 在 上一篇文章《使用Go语言的gorm框架查询数据库并分页导出到Excel实例》 中主要给大家分享了较多数据的时候如何使用go分页导出多个Excel文件并合并的实现方案&#xff0c;这一篇文章…

Linux之远程连接服务器

远程连接服务器的类型 文字接口 明文传输&#xff1a;Telnet 23、RSH等&#xff0c;目前非常少用&#xff1b; 加密传输&#xff1a;SSH为主&#xff0c;已经取代明文传输 ssh提供两个服务器功能&#xff1a;1.类似于telnet&#xff1b;2.类似于ftp的sftp-serve…

特斯拉自动驾驶出租车计划变成泡影?联想与Meta合作,推出面向PC的个人AI智能体AI Now|AI日报

文章推荐 Swarms Corporation创始人Kye Gomez实锤OpenAI多智能体Swarm抄袭其成果&#xff01;&#xff5c;AI日报 今日热点 中国海油“海能”人工智能模型正式发布 近日&#xff0c;由中国海油与中国电信、科大讯飞等企业合作打造“海能”人工智能模型正式推出。 中国海油“…

Centos7搭建minio对象存储服务器

Centos7搭建minio对象存储服务器 安装二进制程序配置服务文件 安装二进制程序 参考&#xff1a;https://segmentfault.com/q/1010000042181876 minio中国版&#xff1a;https://www.minio.org.cn/download.shtml#/linux # 下载二进制程序 wget https://dl.min.io/server/min…

鸿蒙--应用首次启动

最终效果 前言 基于自定义弹框、首选项和页面路由实现一个模拟应用首次启动的案例。需要完成以下功能: 实现四个页面,启动页、隐私协议页、广告页和应用首页。实现自定义隐私协议弹窗,点击协议可查看隐私协议具体内容。页面间的路由跳转。相关概念 首选项:首选项为应用提供…

软件工程:图书管理系统甘特图

1 实验目的 熟悉GanttProject 软件环境&#xff0c;能够使用GanttProject绘制甘特图,进行项目管理与规划。 2 实验内容 为小型图书管理系统项目的实施计划绘制甘特图。 小型图书管理系统项目包含登录、浏览、管理读者、管理图书资料、管理书目、登记借书、登记还书、预定图书、…

Snort浅析

Snort简介 Snort是免费开源的IDS/IPS&#xff08;入侵检测/防御系统&#xff09;系统&#xff0c;于1998年开发&#xff0c;旨在检测和响应网络中的可疑活动。包含流量/协议分析、内容匹配等功能&#xff0c;并可用预定义规则检测和防止各种攻击。官方网站&#xff1a;https:/…

出口摩洛哥提示 | 燃气器具和设备,2024年12月20日起需要标识Cmim Mark

Cmim Mark 为了证明产品符合摩洛哥的技术法规及标准&#xff0c;指导消费者正确选购&#xff0c;并协助政府有效管理市场&#xff0c;所有依据第24-09号法律规定的产品&#xff0c;必须加贴清晰的Cmim Mark&#xff0c;方可顺利进入摩洛哥市场。 根据摩洛哥官方公报发布的关于…

K歌与露营最搭配,AISON爱畅K歌音箱让露营更有趣

据市场调研数据显示&#xff0c;中国露营经济核心市场规模和带动市场规模均呈现逐年上升趋势&#xff0c;预计到2025年&#xff0c;中国露营经济核心市场规模将达到2483.2亿元。同时&#xff0c;《2024小红书搜索推广白皮书》显示&#xff0c;城市出行、音乐、旅游和户外等娱乐…

redis的配置文件redis.conf解析

我的后端学习大纲 我的Redis学习大纲 1.1.Redis的配置文件&#xff1a; 1.Redis的配置文件名称是&#xff1a;redis.conf 2.在vim这个配置文件的时候&#xff0c;默认是不显示行号的&#xff0c;可以编辑下面这个文件&#xff0c;末尾加上set nu&#xff0c;就会显示行号: 1.…

STM32应用详解(5)USART串口初始化

文章目录 一、USART初始化二、代码说明1.原理图2.main函数3.USART串口初始化函数4.代码整体结构 三、USART串口初始化总结 一、USART初始化 所谓的对USART进行初始化&#xff0c;就是对USART固件库函数的调用&#xff0c;来完成串口(USART)的设置&#xff0c;比如设置波特率、…

Docker 搭建mysql

拉取mysql镜像 docker pull mysql # 拉取镜像 [rooteason ~]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d…

开放式耳机什么品牌最好?热门开放式蓝牙耳机推荐!

如今&#xff0c;开放式耳机如雨后春笋般涌现&#xff0c;丰富的产品类型确实让不少消费者陷入了选择的困境。很多人不知道哪个牌子的耳机好用&#xff0c;不过别担心&#xff0c;我精心搜罗了一批兼具时尚外观与卓越性能的开放式耳机。作为有着多年音频设备研究经验的专业人士…

sql server 行转列及列转行

图1 图2 1.行转列 &#xff08;图1->图2&#xff09; 1.方法一 (数据库通用&#xff09;&#xff0c;使用max 加case when 函数 -- 行转列 图1->图2 SELECT name,MAX(CASE WHEN subject语文 THEN score ELSE 0 END) AS "语文",MAX(CASE WHEN subject数学 …

OpenAI GPT-o1实现方案记录与梳理

本篇文章用于记录从各处收集到的o1复现方案的推测以及介绍 目录 Journey Learning - 上海交通大学NYUMBZUAIGAIRCore IdeaKey QuestionsKey TechnologiesTrainingInference A Tutorial on LLM Reasoning: Relevant methods behind ChatGPT o1 - UCL汪军教授Core Idea先导自回归…

64页精品PPT | 汽车经销商数据应用解决方案

汽车经销商正面临前所未有的盈利能力挑战。从18年起 &#xff0c;传统燃油车汽车行业开始步入低速增长阶段 &#xff0c;卖车已经挣不到钱 &#xff0c;利润往往来自任务完成的厂家返利&#xff1b;新兴的直营模式的出现 &#xff0c;冲击了传统授权经销的方式 &#xff0c;疫情…

【JS】双指针法获得满足四数之和且不重复的四元组

思路 本题做法与上一篇三数相加的做法相似&#xff0c;同样是使用双指针法&#xff0c;区别是这里多嵌一层循坏&#xff0c;遍历 i 和 j 的值&#xff08; j i 1&#xff09;&#xff0c;思路可参考笔记&#xff1a; 【JS】双指针法获得满足三数之和且不重复的三元组https://…

Git合并多个分支中的提交内容

IDEA中使用 IEAD编辑器中使用Git IEAD编辑器中使用Git 案例一&#xff1a; 把test分支的其中提交的内容合并到main分支上。 你现在通过IDEA开发的分支是test分支&#xff0c;当你在test分支把内容都写完了并且提交内容保存到了本地的git暂存区中的时候&#xff0c;如果此时你的…

【JAVA毕业设计】基于Vue和SpringBoot的员工绩效考核系统

本文项目编号 T 021 &#xff0c;文末自助获取源码 \color{red}{T021&#xff0c;文末自助获取源码} T021&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 业务分析1.2 用例分析 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行…