流水账-20240229

目录

  • git
    • 本地回滚到到`120bc409ee3b8f63a23d0060e55118bcce557acf`提交记录
    • 本地提交到已有代码分支
  • IDEA
    • 批量导入快捷键无效
    • 更换背景主题
    • 快捷键
      • 快捷键可以设置eclipse模式,但是有些不生效,可能是冲突了
      • `Ctrl+单击`,`Eclipse`里面是可以跳转到代码内部;`IDEA`是跳转到引用该方法的地方(`Ctrl + Alt +B`是跳转到方法内部)
      • 格式化代码快捷键:`Ctrl+Alt+L`
      • 转换大小写:`Ctrl+Shift+Y`(*eclipse*)或者`Ctrl+Shift+U`
      • 下划线转驼峰的用插件 `CamelCase`,快捷键是 `Shift + Alt + U`
    • 在这里插入图片描述
      • 外部修改了文件名称,类内部名称需要修改,进入类内部,点击`Alt + Enter`,可以选择改成和外部名称一致,或者外部名称改成和内部一致
      • `Ctrl+E`查看最近打开文件记录列表
      • Alt + 箭头左右 (回到之前操作的文件)
    • 设置打开代码窗口无上限
    • Ctrl+Shift+O去除无用import,变成了导入.*,导致checkstyle不通过
  • java
    • org.springframework.util.ReflectionUtils
    • 比对相同实体的属性值是否相同
      • 源码

git

本地回滚到到120bc409ee3b8f63a23d0060e55118bcce557acf提交记录

git reset --hard 120bc409ee3b8f63a23d0060e55118bcce557acf

在这里插入图片描述
强制推送到远程仓库,废弃掉之前的提交(这样做可能会改变其他人已经拉取的分支):

git push origin --force --all

本地提交到已有代码分支

在您本地对直接导入并解压缩的代码文件进行修改后,要同步到下载的Git代码分支上,可以按照以下步骤操作:

  • 首先确保你已经在本地的这个项目文件夹下初始化了Git仓库,并且已经关联到远程的GitHub仓库。如果没有,请执行以下命令:

    cd 你的项目文件夹路径
    git init
    git remote add origin 远程仓库地址
    
  • 将修改的文件添加到暂存区:

    git add .
    

    这里.代表所有修改过的文件,如果你只想添加特定文件,可以用git add 文件名

  • 提交本地更改:

    git commit -m "你的提交描述信息"
    
  • 推送到对应的远程分支(假设是master分支):

    git push origin master
    
  • 如果远程分支不是master,比如是dev分支,则改为:

    git push origin dev
    
  • 如果在推送时遇到权限问题或者需要推送到一个新分支,可能需要使用-u参数创建与远程分支的追踪关系,以及-f参数强制推送:

    git push -u origin 新分支名称 -f
    

    请谨慎使用-f参数,因为它会覆盖远程分支上的内容。

IDEA

批量导入快捷键无效

Alt+Enter,批量导入类无效,可以尝试打开下面开关
在这里插入图片描述

更换背景主题

在这里插入图片描述

快捷键

快捷键可以设置eclipse模式,但是有些不生效,可能是冲突了

在这里插入图片描述

Ctrl+单击Eclipse里面是可以跳转到代码内部;IDEA是跳转到引用该方法的地方(Ctrl + Alt +B是跳转到方法内部)


格式化代码快捷键:Ctrl+Alt+L


转换大小写:Ctrl+Shift+Y(eclipse)或者Ctrl+Shift+U


下划线转驼峰的用插件 CamelCase,快捷键是 Shift + Alt + U

在这里插入图片描述

外部修改了文件名称,类内部名称需要修改,进入类内部,点击Alt + Enter,可以选择改成和外部名称一致,或者外部名称改成和内部一致


Ctrl+E查看最近打开文件记录列表


Alt + 箭头左右 (回到之前操作的文件)


设置打开代码窗口无上限

在这里插入图片描述

Ctrl+Shift+O去除无用import,变成了导入.*,导致checkstyle不通过

通过下面设置,默认超过5个就变成导入*
在这里插入图片描述

java

org.springframework.util.ReflectionUtils

ReflectionUtilsSpring框架提供的一个工具类,主要用于简化 Java反射相关的操作。这个类包含了多个静态方法,可以帮助开发者在运行时执行一些常见的反射任务,比如:

  1. 获取和设置私有字段的值:无论字段是否为私有,都可以通过 ReflectionUtils 访问其值。
  2. 调用方法:包括私有方法在内的任意方法都可以通过 ReflectionUtils 被安全地调用。
  3. 检查类、接口、方法和字段是否存在:辅助进行类结构的探测。
  4. 遍历类层次结构:递归查找父类或接口上的方法和字段。
  5. 设置访问权限:通过 makeAccessible() 方法临时改变访问控制,使得原本不可见的成员变为可见。
  6. 处理异常:对于可能出现的反射异常进行了封装和统一处理。
  7. 获取所有字段:不论继承层次深浅,都能获取到类的所有字段。

通过使用 ReflectionUtils,开发者可以减少手动编写反射代码的复杂度,降低潜在的错误风险,并使代码更具可读性和可维护性。在 Spring 框架中,这个工具类广泛应用在依赖注入、AOP代理、事件处理等方面。

使用场景就是表里面codevalue字段存放的是属性名称、属性值,现在就是把表数据和具体实体做个映射,给实体属性set值(惭愧,作为一个老程序员,第一次用这个工具类,特此记录一下

  • 设置属性值
    在这里插入图片描述
  • 具体方法
    public static void setProperty(Object target, String propertyName, Object value) {
            Field field = ReflectionUtils.findField(target.getClass(), propertyName);
            if (field != null) {
                ReflectionUtils.makeAccessible(field);
                try {
                    field.set(target, value);
                } catch (IllegalAccessException e) {
                    throw new RuntimeException("无法设置属性值", e);
                }
            } else {
                throw new IllegalArgumentException("找不到名为 " + propertyName + " 的属性");
            }
        }
    

比对相同实体的属性值是否相同

在这里插入图片描述

源码

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * 比较实体,返回相同和不同的属性
 */
public class EntityCompareTest {
    private static Map<String, Object> differences = new HashMap<>(); // 用于存储不同属性及其新旧值
    private static Map<String, Object> unchanges = new HashMap<>(); // 用于存储值未发生改变的属性及值

    public static void main(String[] args) throws IllegalAccessException {
        DemoEntity leftEntity = new DemoEntity();
        leftEntity.setAge(32);
        leftEntity.setId(20240229L);
        leftEntity.setName("Tom");
        leftEntity.setSex(1);

        DemoEntity rightEntity = new DemoEntity();
        rightEntity.setAge(31);
        rightEntity.setId(20240229L);
        rightEntity.setName("July");
        rightEntity.setSex(2);

        Class<?> leftClass = leftEntity.getClass();
        Class<?> rightClass = rightEntity.getClass();

        if (!leftClass.equals(rightClass)) {
            throw new IllegalArgumentException("Entities must be of the same type");
        }

        Field[] fields = leftClass.getDeclaredFields();


        for (Field field : fields) {
            field.setAccessible(true);
            Object leftValue = field.get(leftEntity);
            Object rightValue = field.get(rightEntity);

            if (leftValue == null && rightValue != null) {
                differences.put(String.valueOf(field), new ComPareValue<>(leftValue, rightValue));
            } else if (leftValue != null && !leftValue.equals(rightValue)) {
                differences.put(field.getName(), new ComPareValue<>(leftValue, rightValue));
            } else {
                unchanges.put(field.getName(), leftValue);
            }
        }

        System.out.println("变更信息:" + differences.toString());
        System.out.println("未变更信息:" + unchanges.toString());
    }
}

import lombok.Data;

/**
 * demo实体类
 */
@Data
public class DemoEntity {
    private Long id;
    private String name;
    private Integer sex;
    private Integer age;
}

import lombok.Data;

/**
 * 存储差异值.
 *
 * @param <L>
 * @param <R>
 */
@Data
public class ComPareValue<L, R> {
    private L left;
    private R right;

    public ComPareValue(L left, R right) {
        this.left = left;
        this.right = right;
    }

}

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

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

相关文章

数仓项目6.0(二)数仓

中间的几步意义就在于&#xff0c;缓存中间处理数据样式&#xff0c;避免重复计算浪费算力 分层 ODS&#xff08;Operate Data Store&#xff09; Spark计算过程中&#xff0c;存在shuffle的操作&#xff0c;而shuffle会将计算过程一分为二&#xff0c;前一阶段不执行完&…

单点登录的三种方式

前言 在B/S系统中&#xff0c;登录功能通常都是基于Cookie 来实现的。当用户登录成功后&#xff0c;一般会将登录状态记录到Session中&#xff0c;或者是给用户签发一个 Token&#xff0c;无论哪一种方式&#xff0c;都需要在客户端保存一些信息(Session ID或Token)&#xff0…

Leetcode股票问题总结篇!

Leetcode股票问题总结篇! https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92-%E8%82%A1%E7%A5%A8%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93%E7%AF%87.html#%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA 卖股票的最佳时机 买卖股票…

网络工程师笔记5

TCP/IP 常见协议 应用层 Telnet 数据网络中提供远程登录服务的标准协议23FTP 传输文件协议21&#xff0c;20HTTP 超文本传输协议80TFTPSNMPSMTPDNSDHCP 传输层 TCPUDP 网络层 ICMPIGMPIP 数据链路层 PPPOE Internet PPP 传输层 传输层协议接收…

AI智能分析网关V4智慧商场方案,打造智慧化商业管理生态

AI智能视频检测技术在商场楼宇管理中的应用越来越广泛。通过实时监控、自动识别异常事件和智能预警&#xff0c;这项技术为商场管理提供了更高效、更安全的保障。今天我们以TSINGSEE青犀视频AI智能分析网关为例&#xff0c;给大家介绍一下AI视频智能分析技术如何应用在商场楼宇…

web组态(BY组态)接入流程

技术文档 官网网站&#xff1a;www.hcy-soft.com 体验地址&#xff1a; www.byzt.net:60/sm 一、数据流向图及嵌入原理 数据流向 嵌入原理 二、编辑器调用业务流程图 三、集成前需要了解的 1、后台Websocket端往前台监控画面端传输数据规则 后台websocket向客户端监控画面…

最新 PhpStorm 2023.3.4 下载与安装 + 永久免费

文章目录 Stage 1 : 官网下载Stage 2 : 下载工具Stage 3-1 : windows为例Stage 3-2 : mac为例常见问题部分小伙伴 Mac 系统执行脚本遇到如下错误&#xff1a;解决方法&#xff1a; Stage 1 : 官网下载 先去官网下载 我这里下载的是最新版本的2023.3.4&#xff0c;测试过2023最…

就业班 2401--2.28 Linux Day7--存储管理1

一 .存储管理 主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID 初识硬盘 机械 HDD 固态 SSD SSD的优势 SSD采用电子存储介质进行数据存储和读取的一种技术&#xff0c;拥有极高的存储性能&#xff0c;被认为是存储技术发展的未来新星。 与传统硬盘相比&#…

使用Fragments(片段)提升你的Vue.js开发体验

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Windows系统安装TortoiseSVN并结合内网穿透实现远程访问本地服务器——“cpolar内网穿透”

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

C++:模版初阶 | STL简介

创作不易&#xff0c;感谢支持&#xff01;&#xff01; 一、泛型编程思想 如何实现一个通用的交换函数呢&#xff1f; 注&#xff1a;其实swap函数在C的标准库提供了&#xff0c;不需要自己写&#xff0c;这边只是举个例子 void Swap(int& left, int& right) { in…

【MATLAB源码-第149期】基于MATLAB的2ASK,2FSK,2PSK,2DPSK等相干解调仿真,输出各节点波形。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 2ASK&#xff08;二进制幅移键控&#xff09;、2FSK&#xff08;二进制频移键控&#xff09;、2PSK&#xff08;二进制相移键控&#xff09;和2DPSK&#xff08;二进制差分相移键控&#xff09;是数字调制技术中的基本调制方…

《C++ Primer Plus》《10、对象和类》

文章目录 前言&#xff1a;1 过程性编程和面向对象编程2 抽象和类2.1 类型是什么2.2 C中的类2.3 实现类成员函数2.4 使用类 3 类的构造函数和析构函数3.1 声明和定义构造函数3.2 使用构造函数3.3 默认构造函数3.4 析构函数 4 this指针5 对象数组6 类的作用域6.1 作用域为类的常…

初始化vue3(构建、配置)

白弟的记性不好&#xff0c;正所谓好记性不如烂笔头&#xff0c;还是把一些知识写下来更好&#xff0c;这一篇文章主要讲的就是初始化vue3项目的一些常规的配置&#xff0c;自动化部署在另一篇文章&#xff0c;大家可以自行查阅。 一、项目初始化&#xff08;用的vite2&#xf…

【竞技宝】DOTA2-梦幻联赛S22:AR命悬一线 XG确定晋级淘汰赛

北京时间2024年2月28日&#xff0c;DOTA2梦幻联赛S22的比赛在昨日进入小组赛第三个比赛日&#xff0c;本次梦幻联赛共有AR、XG、IG三支中国区的队伍参赛&#xff0c;那么经过三日激烈的比赛之后&#xff0c;目前三支队伍的积分情况以及晋级形势如何呢&#xff1f; XG XG是小组…

【vue+element ui】大屏自适应中el-select下拉内容在低分辨率下显示不全问题解决

目录 背景 现象 解决方案 背景 最近要把一个1920px*1080px的大屏改成自适应的&#xff1b;最低适配到1028px*720px&#xff1b; 现象 自适应适配改完之后 将电脑屏幕改成1028px*720px分辨率后&#xff0c;下拉显示正常 通过谷歌浏览器设置Toggle device toolbar为1028px*…

unity使用Registry类将指定内容写入注册表

遇到一个新需求&#xff0c;在exe执行初期把指定内容写入注册表&#xff0c;Playerprefs固然可以写入&#xff0c;但是小白不知道怎么利用Playerprefs写入DWORD类型的数据&#xff0c;因此使用了Registry类 一. 对注册表中键的访问 注册表中共可分为五类 一般在操作时&#…

如何在Linux系统Docker部署Wiki.js容器并结合内网穿透实现远程访问本地知识库

文章目录 1. 安装Docker2. 获取Wiki.js镜像3. 本地服务器打开Wiki.js并添加知识库内容4. 实现公网访问Wiki.js5. 固定Wiki.js公网地址 不管是在企业中还是在自己的个人知识整理上&#xff0c;我们都需要通过某种方式来有条理的组织相应的知识架构&#xff0c;那么一个好的知识整…

GEE必须会教程—栅格影像数据的处理

今天继续GEE的学习&#xff0c;我们依然看到影像数据的处理&#xff0c;今天将涉及到的函数命令时栅格掩膜、栅格裁剪、栅格的波段选择创建、栅格的波段添加、栅格重投影以及栅格的色彩转换。 A.栅格掩膜 掩膜的意思就是以其中一个为边界范围&#xff0c;将边界范围内覆盖的数…

3_相机模型

相机标定对于联系相机测量和真实三维世界测量也很重要。它的重要性在于场景不仅仅是三维的&#xff0c;也是物理单位度量的空间。因此&#xff0c;确定相机的自然单位(像素)与物理单位(如mm)的关系是三维场景重构的重要部分。相机标定的过程既给出相机的几何模型又给出透镜的畸…
最新文章