首页 > 其他分享 >debug小记

debug小记

时间:2025-01-15 10:22:45浏览次数:1  
标签:endIndex beginIndex value readMethod debug new throw 小记

Java

copyProperties方法

  • Spring的BeanUtils不会copy字段名相同但类型不同的属性
if (readMethod != null &&
        ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {
    try {
        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);
    }
    catch (Throwable ex) {
        throw new FatalBeanException(
                "Could not copy property '" + targetPd.getName() + "' from source to target", ex);
    }
}					
  • apache的PropertyUtils::copyProperties若字段名相同但类型不同会抛java.lang.IllegalArgumentException异常
  • apache的BeanUtils::copyProperties若字段名相同但类型不同会尝试转换类型后copy, Throws:ConversionException - if conversion cannot be performed successfully
// Convert the specified value to the required type and store it
if (index >= 0) {                    // Destination must be indexed
    value = convertForCopy(value, type.getComponentType());
    try {
        getPropertyUtils().setIndexedProperty(target, propName,
                                         index, value);
    } catch (final NoSuchMethodException e) {
        throw new InvocationTargetException
            (e, "Cannot set " + propName);
    }
}

String::substring(startIndex, endIndex) 方法的endIndex参数若大于字符串长度会直接抛异常, 而并非认为取剩余的所有字符

    public String substring(int beginIndex, int endIndex) {
        if (beginIndex < 0) {
            throw new StringIndexOutOfBoundsException(beginIndex);
        }
        if (endIndex > value.length) {
            throw new StringIndexOutOfBoundsException(endIndex);
        }
        int subLen = endIndex - beginIndex;
        if (subLen < 0) {
            throw new StringIndexOutOfBoundsException(subLen);
        }
        return ((beginIndex == 0) && (endIndex == value.length)) ? this
                : new String(value, beginIndex, subLen);
    }

标签:endIndex,beginIndex,value,readMethod,debug,new,throw,小记
From: https://www.cnblogs.com/newbieking/p/18672298

相关文章

  • idea系列---【idea中的Debug常用功能】
    idea中的Debug常用功能1.方法断点(打在方法上的断点(菱形)):适用场景:当一个接口有多个实现类时,在接口的方法上打个断点,执行到这个方法的时候,就会自动进入使用的实现类的方法里的第一行,可以帮我们快速定位使用的哪个实现类。2.字段断点(打在字段上(眼睛形)):适用场景:观察字段的值被......
  • ffmpeg 使用小记
    mp4转图片./ffmpeg.exe-i./v/1.mp4-r1./v/img/img_%04d.jpgmp4兼容平板quicktime./ffmpeg.exe-i./v/1.mp4-c:vlibx265-c:aaac-crf25-tag:vhvc1output265.mp4wmv格式转mp4./ffmpeg.exe-i./v/2.wmv-c:vlibx264-crf20-c:aaac-strictexperim......
  • DC-6 靶场通关小记
    地址https://www.vulnhub.com/entry/dc-6,315/环境配置略,有问题可参考https://www.cnblogs.com/lrui1/p/18655388需要向hosts文件添加以下内容Windows:C:\Windows\System32\drivers\etc\hostsLinux:/etc/hosts192.168.x.xwordy作者给的提示ClueOK,thisisn'treally......
  • DC-5 靶场通关小记
    地址https://www.vulnhub.com/entry/dc-5,314/环境配置有兼容性问题参考https://www.cnblogs.com/lrui1/p/18655388信息收集./rustscan-a192.168.74.130---A-sCOpen192.168.74.130:111Open192.168.74.130:80Open192.168.74.130:53199PORTSTATESERVICE......
  • 线性规划对偶小记
    有\(n\)个变量\(x_1,x_2,\dots,x_n\),有若干条限制,形如:\(f(x_1,x_2,\dots,x_n)\leb\)\(f(x_1,x_2,\dots,x_n)=b\)\(f(x_1,x_2,\dots,x_n)\geb\)三种不同形式(注意不能取小于或大于号),可称这些限制是线性的。同时,需要最大化\(\sum\limits_{i=1}^......
  • 开发微信小程序游戏,有没有类似Debug真机图形的方法
    1)开发微信小程序游戏,有没有类似Debug真机图形的方法2)Unity中如何实现动态实时的车削效果3)动态创建的Texture,有什么办法可以让他保持ASTC么4)Unity转微信小游戏的日志问题这是第416篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更......
  • DC-3 靶场通关小记
    地址https://www.vulnhub.com/entry/dc-32,312/1.0环境配置1.1导入Vmware编辑虚拟机报错虚拟机->管理->更改硬件兼容性1.2ide1:0改为ide0:01.3网卡改为NAT模式2.信息收集fscan.exe-h192.168.74.0/24-nobr-nopocfscan.exe-h192.168.74.131-p1-65535#......
  • vscode+vim配置小记
    引入在windows系统下使用vscode+vim编写代码时会遇到一个令人略有不爽的小麻烦。在vim的normal模式下,首先需要进入insert模式才能正常编写。这里一般是在英文输入法键入相应字母才能进入,比如“i”和“o”我们进入insert模式之后,在敲代码的过程中难免会需要增加些中文注释,这个时......
  • 【Github及开源项目debug之AI项目】——anconda环境配置(一)
    一、环境配置环境配置一直是整个ai项目最头疼的地方,由于大部分ai项目都是使用python来编写代码的,不可避免的每个项目使用的python及对应的package版本不一致,此时就需要配置虚拟环境来应对不同的ai项目1.1anconda下载anconda有两种安装包,一种是anconda,另一种miniconda;其......
  • Debug的使用
    Debug的使用使用平台是DOSBox输入命令mountcd:\masm命令的意思是,将本机d:\masm文件夹作为模拟器的C盘。将工作盘转换到C盘(输入C:并回车)C:查看目录(dir再回车)dir:启动Debug在DOS提示符下输入命令:debug用R命令查看、改变CPU寄存器的内容R-查......