【Java】常用方法合集

news2024/10/26 15:53:08

以 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]);
    }
  1. 获取 resources 下 指定文件的路径
    在这里插入图片描述
URL resource = getClass().getClassLoader().getResource("ip2region.xdb");
String XDB_PATH = resource.getPath();

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

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

相关文章

贪心算法记录 - 下

135. 分发糖果 困难 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c…

一文搞懂指令周期,机器周期和时钟周期

如图&#xff1a; 指令周期 > 机器周期 > 时钟周期 指令周期&#xff1a;一个指令&#xff0c;从取值到执行的全部周期。一个指令执行过程包括取值&#xff0c;译码和执行阶段。 机器周期&#xff1a;,取指、间址、执行和中断等 时钟周期&#xff1a;时钟频率的倒数&am…

什么样的JSON编辑器才好用

简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也便于机器解析和生成。随着互联网和应用程序的快速发展&#xff0c;JSON已经成为数据传输和存储的主要格式之一。在处理和编辑JSON数据…

python查询并安装项目所依赖的所有包

引言 如果需要进行代码的移植&#xff0c;肯定少不了在另一台pc或者服务器上进行环境的搭建&#xff0c;那么首先是要知道在已有的工程的代码中用到了哪些包&#xff0c;此时&#xff0c;如果是用人工去一个一个的代码文件中去查看调用了哪些包&#xff0c;这个工作甚是繁琐。…

推荐一款三维数值建模软件:3DEC

3DEC是一种用于土壤、岩石、地下水、结构支撑和砖石等高级岩土工程分析的三维数值建模软件。该软件的数值公式基于离散元法(DEM)进行不连续建模。UDEC是它的二维版本。不连续材料是一组离散的块。不连续性充当着块之间的边界条件。允许块的大位移和旋转。常见的结构可以直接从地…

HTML5教程(一)- 网页与开发工具

1. 什么是网页 网页 基于浏览器阅读的应用程序&#xff0c;是数据&#xff08;文本、图像、视频、声音、链接等&#xff09;展示的载体常见的是以 .html 或 .htm 结尾的文件 网站 使用 HTML 等制作的用于展示特定内容相关的网页集合。 2. 网页的组成 浏览器 代替用户向服务…

Cout输出应用举例

Cout输出应用 在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <stdlib.h> //使能exit(); #include <sstream> #include <iomanip> //使能setbase(),setfill(),setw(),setprecision(),setiosflags()和res…

根据用户选择的行和列数据构造数据结构(跨行跨列)

方案一 这段代码的功能是根据用户选择的行和列数据&#xff0c;生成一个适合复制粘贴的字符串表格。代码会先按列的 id 从小到大排序&#xff0c;再根据行列的选择关系将数据按顺序填入表格&#xff0c;每行之间使用换行符分隔&#xff0c;每列之间使用制表符分隔。如果某一行…

【汇编语言】第一个程序(一)—— 一个源程序从写出到执行的过程

文章目录 前言1. 第一步&#xff1a;编写汇编源程序2. 第二步&#xff1a;对源程序进行编译连接3. 第三步&#xff1a;执行可执行文件中的程序结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程…

多元线性回归【正规方程/sklearn】

多元线性回归【正规方程/sklearn】 1. 基本概念1.1 线性回归1.2 一元简单线性回归1.3 最优解1.4 多元线性回归 2. 正规方程求最优解2.1 线性回归的损失函数&#xff08;最小二乘法&#xff09;2.2 推导正规方程2.3 正规方程练习2.4 使用sklearn计算多元线性方程2.5 凸函数 3. 线…

比例数据可视化(Python实现板块层级图绘制)——Instacart Market Basket Analysis

【实验名称】 实验一&#xff1a;绘制板块层级图 【实验目的】 1. 掌握数据文件读取 2. 掌握数据处理的方法 3. 实现板块层级图的绘制 【数据介绍】Instacart Market Basket Analysis 1. 数据说明 数据共有300 0000orders&#xff0c; 20 0000users&#xff0c; …

electron 打包

安装及配置 安装electron包以及electron-builder打包工具 # 安装 electron cnpm install --save-dev electron # 安装打包工具 cnpm install electron-builder -D 参考的package.json文件 其中description和author为必填项目 {"name": "appfile",&qu…

十一、数据库配置

一、Navicat配置 这个软件需要破解 密码是&#xff1a;123456&#xff1b; 新建连接》新建数据库 创建一个表 保存出现名字设置 双击打开 把id设置为自动递增 这里就相当于每一次向数据库添加一个语句&#xff0c;会自动增长id一次 二、数据库的增删改查 1、Vs 建一个控…

C# 创建型设计模式----工厂模式

1 、什么是工厂模式 简单来说就是由一个对象去生成不同的对象&#xff0c;工厂模式是用工厂方法代替new操作的一种模式。工厂方法封装了多个相关联类的new方法&#xff0c;每次实例化这些类的时候不需要new多次&#xff0c;只需要调用工厂类的对应方法即可实例化这些类&#x…

2024年项目管理新风向:敏捷开发与瀑布开发,哪个更优?

一、项目管理的多样格局 2024 年&#xff0c;项目管理领域展现出丰富多样的格局。数字化趋势愈发明显&#xff0c;项目管理软件普及度不断提高&#xff0c;据相关资料显示&#xff0c;随着云计算、大数据等技术的成熟&#xff0c;项目管理软件将更加普及&#xff0c;实现项目信…

单片机_RTOS__架构概念

经典单片机程序 void main() {while(1){函数1&#xff08;&#xff09;&#xff1b;函数2&#xff08;&#xff09;&#xff1b;}} 有无RTOS区别 裸机 RTOS RTOS程序 喂饭&#xff08;&#xff09; {while&#xff08;1&#xff09;{喂一口饭&#xff08;&#xff09;;} } …

容灾与云计算概念

​​​​​​基础知识容灾备份——备份技术系统架构与备份网络方案-CSDN博客 SAN&#xff0c;是storage area network的简称&#xff0c;翻译过来就是存储区域网络。 顾名思义&#xff0c;SAN首先是一个网络&#xff0c;其次它是关于存储的&#xff0c;区域则是指服务器和存储资…

【C语言】控制台学生成绩管理系统

文章目录 C语言编程&#xff1a;学生成绩管理系统一、程序概述二、代码实现三、程序解释 C语言编程&#xff1a;学生成绩管理系统 在这篇文章中&#xff0c;我们将一起探讨如何使用C语言来创建一个简单的学生成绩管理系统。这个系统将允许用户输入学生数量、学号和成绩&#x…

气膜娱乐馆:科技与自然的完美结合—轻空间

在这片拥有独特滨海风光和丰富旅游资源的地方&#xff0c;气膜娱乐馆应运而生&#xff0c;为游客和当地居民打造了一个集运动、娱乐、亲子游乐和科技互动于一体的综合性室内娱乐体验。 灵活空间&#xff0c;舒适体验 气膜结构为娱乐馆提供了广阔的空间灵活性&#xff0c;使其能…

【Markdown速成】半小时入门Markdown教程(后缀.md文件详解)

目录 一.认识Markdown Markdown Typora 二.Typora设置 三.Markdown语法 1.标题 2.正文 2.1分割线 2.2删除线 2.3下划线 2.4斜体 2.5粗体 2.6斜粗体 2.7高亮 2.8字体属性&#xff08;大小及颜色&#xff09; 2.9对齐方式 2.10引用 3.列表 有序列表 无序列表 …