小工具知识网

当前位置: 首页 > 行业知识 > 流水账-20240229

行业知识

流水账-20240229

2026-10-21 14:39:52 来源:互联网转载

目录

  • 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 initgit 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

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

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

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

                  使用场景就是表里面code、value字段存放的是属性名称、属性值,现在就是把表数据和具体实体做个映射,给实体属性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 differences = new HashMap(); // 用于存储不同属性及其新旧值    private static Map 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实体类 */@Datapublic class DemoEntity {    private Long id;    private String name;    private Integer sex;    private Integer age;}
                    import lombok.Data;/** * 存储差异值. * * @param  * @param  */@Datapublic class ComPareValue {    private L left;    private R right;    public ComPareValue(L left, R right) {        this.left = left;        this.right = right;    }}

上一篇:松江主机接线

下一篇:微信服务器怎么打开链接?