返回顶部
首页 > 资讯 > 后端开发 > Python >Java自定义equals产生的问题分析
  • 326
分享到

Java自定义equals产生的问题分析

Java自定义equalsJavaequals 2023-01-30 12:01:32 326人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录Java自定义equals注意事项logback.xml配置maxFileSize单位问题SpringCloud gateway项目引入druidshell编写脚本Java自定义

Java自定义equals注意事项

对于需要用某业务主键判断对象相等时,通常用 IDE 自动生成 equals 方法,选定特点的判断字段。

但对于有父类的类来说,默认有一句调用比较坑:

public class Person extends ParentObject{
    private String id;
    private String name;
    private int age;
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        Person person = (Person) o;
        return id.equals(person.id);
    }
    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), id);
    }
}

if (!super.equals(o)) return false; 这一句默认的代码,遭遇过两次坑。例如这里的 Person 对象只需要根据 id 相等,就视为同一个对象,但是有了这句调用,执行列表的 contains 方法始终返回 false,断点找到了这个问题。

解决办法:自定义具有父类的类的 equals 方法时,需要去掉这行。这个问题一碰到就感觉很熟悉,想起去年6月也遇到集合操作自定义对象判断失败的问题,所以断点到了 super 调用返回 false 就知道问题所在了。

logback.xml配置maxFileSize单位问题

项目中的 logback.xml 配置文件,忘记了从哪里扒来的,本地测试时只关注控制台日志,没发现问题。部署测试机器后,发现异常信息没有写入到日志文件中,为什么呢?

日志文件生成策略是滚动达到文件最大值后新建文件,配置如下:

<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
    <maxFileSize>50M</maxFileSize>
</triggeringPolicy>

跟踪过程,打开调试配置,在 logback.xml 中添加配置:<configuration debug="true">

启动,查看日志插件的调试信息,异常提示 maxFileSize 属性设置报错了。调试到 logback-core 源码中,发现文件大小的单位使用的是 gb/mb/kb,且不区分大小写。修正文件大小配置为:

<maxFileSize>50MB</maxFileSize>

为什么以前没有碰到过这个问题呢?因为以前的日志都是滚动按天生成的,这里拷贝过来的日志文件生成策略是按文件大小。这个配置有个好处,就是不会生成太多日志文件。

springCloud gateway项目引入druid

SprinGCloud 的 gateway 项目是基于 Netty 的,与 Servlet 不相容。网关模块中需要加入数据库操作,引入 druid,常规的数据源配置报 Servlet 包相关的问题。

解决办法是,关掉 spring.datasource.druid 的 stat-view-servlet 配置:

stat-view-servlet:
    enabled: false
    WEB-stat-filter:
      enabled: false

Shell编写脚本

Shell 编写脚本时,cd 命令切换到一个不存在的变量时,默认会到当前用户的 HOME 目录。

#!/sh
currentDir=$(cd `dirname $0`; pwd)
cd $currrentDir
echo `pwd`

这是常用的获取当前执行命令脚本的路径,第三行切换路径时,变量拼写错误,导致切换到脚本目录总是到了 /root ,这个低级错误,找了半天。

到此这篇关于Java自定义equals产生的问题分析的文章就介绍到这了,更多相关Java自定义equals内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java自定义equals产生的问题分析

本文链接: https://lsjlt.com/news/178774.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java自定义equals产生的问题分析
    目录Java自定义equals注意事项logback.xml配置maxFileSize单位问题SpringCloud gateway项目引入druidShell编写脚本Java自定义...
    99+
    2023-01-30
    Java自定义equals Java equals
  • Python自定义进程池实例分析【生产者、消费者模型问题】
    本文实例分析了Python自定义进程池。分享给大家供大家参考,具体如下: 代码说明一切: #encoding=utf-8 #author: walker #date: 2014-05-21 #funct...
    99+
    2022-06-04
    生产者 自定义 实例
  • Java中@ConfigurationProperties实现自定义配置绑定问题分析
    目录@ConfigurationProperties使用@ConfigurationProperties特点 宽松绑定支持复杂属性类型激活@ConfigurationProperti...
    99+
    2024-04-02
  • java之生产故障定位Arthas问题
    目录生产故障定位ArthasArthas(阿尔萨斯)能为你做什么?java诊断工具Arthas(watch命令)方法观察神器watch参数说明生产故障定位Arthas Arthas(...
    99+
    2024-04-02
  • java中生产者和消费者问题实例分析
    这篇“java中生产者和消费者问题实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java中生产者和消费者问题实例分析...
    99+
    2023-06-29
  • vue自定义keepalive组件的问题解析
    目录vue自定义keepalive组件为什么会出现这种情况呢如何解决这个问题呢问题知道了怎么解决呢思路有了撸代码如何使用主题说完了,整点其他的vue自定义keepalive组件 前一...
    99+
    2024-04-02
  • Java实现生产者消费者问题与读者写者问题的示例分析
    这篇文章将为大家详细讲解有关Java实现生产者消费者问题与读者写者问题的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、生产者消费者问题生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它...
    99+
    2023-05-30
    java
  • Schedule定时任务在分布式产生的问题详解
    目录正文一、搭建基本环境二、问题::执行时间延迟和单线程执行三、为什么会出现上述问题?四、解决方式4.1、修改配置文件4.2、执行逻辑改为异步执行4.3、异步定时任务4.4、小结五、...
    99+
    2022-11-13
    Schedule定时任务分布式 Schedule 定时任务
  • MySQL自定义变量实现row_number分析函数的问题示例
    小编给大家分享一下MySQL自定义变量实现row_number分析函数的问题示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL经常用自定义变量实现复杂查询,比如row_numbe...
    99+
    2024-04-02
  • 生产SQL语句突然变慢问题的示例分析
    这篇文章主要为大家展示了“生产SQL语句突然变慢问题的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“生产SQL语句突然变慢问题的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • phpunit自定义的示例分析
    这篇文章主要介绍phpunit自定义的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下载:wget  https://phar.phpunit.de/ph...
    99+
    2024-04-02
  • Laravel自定义Make命令生成Service类的示例分析
    这篇文章主要介绍Laravel自定义Make命令生成Service类的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Laravel 是什么Laravel 是一套简洁、优雅的PHP Web开发框架。它可以让你从...
    99+
    2023-06-15
  • PHP自定义扩展之生命周期的示例分析
    这篇文章将为大家详细讲解有关PHP自定义扩展之生命周期的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php_request_startup这个阶段和php_module_startup差不多,都...
    99+
    2023-06-22
  • Java自定义序列化行为的示例分析
    这篇文章给大家分享的是有关Java自定义序列化行为的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正常情况下,一个类实现java序列化很简单,只需要implements Serializable接口即可,...
    99+
    2023-06-17
  • vue做微信自定义分享的问题有哪些
    这篇文章主要为大家展示了“vue做微信自定义分享的问题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue做微信自定义分享的问题有哪些”这篇文章吧。问题及...
    99+
    2024-04-02
  • javaSE基础java自定义注解原理分析
    目录1. 从注释的角度来理解注解2.提出问题3.编写注解4.通过Java反射获取方法的注解信息结束注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原...
    99+
    2024-04-02
  • bash shell 自定义函数命令持久化生效问题
    目录1. 背景2. 登陆shell时读取命令的流程2.1 /etc/profile2.2 $HOME目录下的启动文件流程3. 在命令行上使用函数3.1 在.bashrc 文件中定义函...
    99+
    2023-05-14
    bash shell 自定义函数命令 shell 自定义函数命令 bash shell 命令
  • bash shell 自定义函数命令持久化生效问题
    目录1. 背景2. 登陆shell时读取命令的流程2.1 /etc/profile2.2 $HOME目录下的启动文件流程3. 在命令行上使用函数3.1 在.bashrc 文件中定义函数3.1.1 直接定义函数3.1.2 ...
    99+
    2023-03-31
    bash shell 自定义函数命令 shell 自定义函数命令 bash shell 命令
  • Java之SpringBean生命周期问题的示例分析
    小编给大家分享一下Java之SpringBean生命周期问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Spring Bean的生命周期?首先说一下S...
    99+
    2023-06-20
  • PHP异常处理:利用异常日志分析生产问题
    php异常日志记录:通过自定义异常处理程序,可以将异常详细信息记录到日志文件中,包括异常类、错误信息和堆栈跟踪。利用这些日志,可以快速识别和解决数据库连接错误等生产问题,确保应用程序平稳...
    99+
    2024-05-14
    php 异常处理 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作