Java重写equals

news/2023/9/25 16:37:12

equals()的参数可以为null。API对应的定义如下:

public  boolean equals(Object obj)

其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false。

如果传入的参数为null,表示obj没有引用的对象,那当前对象与其比较还有意义么?因为能够调用equals这个方法的对象,最重要的一个前提就是当前对象不能为null,否则就会报那个经典的java.lang.NullPointerException。

 

@Override
      public boolean equals(Object obj){
           if(this == obj){//判断两个对象数否相等
                 return true;
               }
            if(obj==null){//判断参数对象是否为空
                 return false;
               }
            if(!(obj instanceof Course)){//判断参数的类型
                 return false;
                }
            Course course = (Course)obj;

            //判断要满足的条件
              if(this.name ==null){
              if(course.name==null){
               return true;
                 }else{
                return false;
                }
                   }else{
    if(this.name.equals(course.name))
      return true;
    else
      return false;
    }
   }

转载于:https://www.cnblogs.com/dukc/p/4747340.html


https://dhexx.cn/news/show-17062.html

相关文章

Farseer.net轻量级开源框架 中级篇:数据绑定

导航目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: DbFactory数据工厂 下一篇:Farseer.net轻量级开源框架 中级篇: 自定义配置文件 这篇文章讲的内容,大家应该会比较感…

.vue 设置提示框几秒后不显示_路由器复位(恢复出厂设置)的操作方法

复位前须知复位(RESET)操作也叫恢复出厂设置、还原、初始化等,可以让路由器恢复出厂默认设置。一般情况下,在忘记管理地址、管理密码、重新配置或运行故障等情况下,可以将设备复位。操作之前建议了解以下信息:[1] 复位后&#xff…

svn切换分支 如何判断 是否完成_svn branch and merge(svn切换分支和合并)详解

下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-book.html先说说什么是branch。按照Subversion的说法,一个branch是某个development line(通常是主线也即…

成长,没你想象的那么迫切

【成长,没你想象的那么迫切】20多岁,迷茫又着急。你想要房子你想要汽车,你想要旅行你想要享受生活。 你那么年轻却窥觑整个世界,你那么浮躁却想要看透生活。不要急,耐心看下去,看完你会明白很多&#xff01…

new ng 错误_ng new ng-pro 报错(创建angular6项目报错)

1、安装nodejsD:\develop\nodejs2、配置node npm环境变量,npm本地仓库指向自定义目录原npm仓库位置C:\Users\Administrator\AppData\Roaming\npm自定义仓库位置D:\develop\npm-global3、安装angular/clinpm install -g angular/cli4、创建项目ng new ng-pro-------…

关于php析构函数的一个有趣问题

随着面向对象编程的普遍展开,面向对象展现了其中很多有趣的问题。相信很多初学者学习php面向对象时会接触两个函数,构造函数与析构函数。构造函数似乎用的更多,析构函数用的较少(相对初学者有限编程经验而言,笔者也是如…

网络爬虫:采用“负载均衡”策略来优化网络爬虫

前言: 这里说的负载均衡并非大家熟悉的网络中的负载均衡。 只是这里我使用了和负载均衡同样的一种思维来优化程序罢了,其实就是压力分摊。 问题描述: 对于上一篇《分离生产者和消费者来优化爬虫程序》博客中遗留的问题:线程阻塞。…

Mysql练习_MySQL的练习

MySQL数据库MySQL的练习mysql登录:方法1:使用Command Line Client登录,缺点:不显示报错信息方法2:使用cmd登录(cmd的常用:查看ip地址:ipcongfi-----定时关机:shutdown -s -t 10800&a…

网站跳转到cgi-sys/defaultwebpage.cgi的原因和解决方式

cpanel遇到这种问题,看了这篇文章老鹰主机域名解析A记录教程–关于cgi-sys/defaultwebpage.cgi后,尝试后首先ping 域名,结果如下看到没有ping结果没有,目前我的域名ip结果是174.36.175.126根本就不是我的cpanel里的专用ip174.36.1…

找不到要编译的文件——path环境变量配置

隔了段时间没有学习j2se,写了一段demo发现编译不成功,找不到需要编译的文件了,以一个最简单的程序为例,HelloWorld.java的程序 解决方法: ①判断JDK安装是否正确 先来看看JDK安装的对不对,我的JDK安装的是1…