import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as s,f as t}from"./app-730966a2.js";const e={},o=t(`
为什么要使用 BeanUtils.copyProperties()
因为原来很少使用这种方法,以前都是 new 对象,然后把传进来的对象手动一个一个赋值,对这个方法不太了解,简单来说就是实现对象的拷贝,属性名相同的就进行拷贝,属性名不相同的就不进行操作,底层使用反射,首先把读写权限都设置为 true,然后再进行获取和赋值操作,这种操作是 浅拷贝
if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
readMethod.setAccessible(true);
}
Object value = readMethod.invoke(source);
if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {
writeMethod.setAccessible(true);
}
writeMethod.invoke(target, value);
数据库 bug ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: '\\xE4\\xB8\\x80\\xE7\\xAD\\x89...' for column 'award_name' at row 1
中文插入乱码问题,我建数据库的时候设置了 utf8,但是建表的时候默认没有设置成 utf8,使用的编码是 latin1,所以需要修改字段的编码为 utf8
包结果的变化
状态流程处理
相对于普通的 if-else 处理流程,状态模式设计模式把状态的流转转化为方法,从而简化了 if-else 一坨接着一坨的形式,如果有新的状态,只需要添加对应的抽象实现以及在其他实现中添加对应的流转方法
后期对设计模式进行统一的学习,目前只了解了基础的程序运行流程,根据流程来了解对应的设计模式,目前对于状态模式的了解仅限于以下两点
checkPass() 然后找到当前状态处理类,调用处理类的 checkPass() 方法,然后返回结果就可以了对于学习的思考
最近陷入了日夜颠倒的死循环,主要就是晚上窝在床上玩手机呢,然后看了会儿星球就想起床学习,一学又搞到两三点三四点,搞不好 bug 多还通了个宵,导致第二天甚至第三天状态低迷,后面要压制学习欲望了,每天该做的做完了就休息,以后每周日休息一天,晚上一点前就睡觉,避免陷入死循环,再多的任务,人的精力也是有限的,只要按部就班稳扎稳打,相信最后也会有收获,不必急于求成