zoukankan      html  css  js  c++  java
  • instanceof和getClass()的区别 CVT

      1. class A { }  
      2.   
      3. class B extends A { }  
      4.   
      5. Object o1 = new A();  
      6. Object o2 = new B();  
      7.   
      8. o1 instanceof A => true  
      9. o1 instanceof B => false  
      10. o2 instanceof A => true // <================ HERE  
      11. o2 instanceof B => true  
      12.   
      13. o1.getClass().equals(A.class) => true  
      14. o1.getClass().equals(B.class) => false  
      15. o2.getClass().equals(A.class) => false // <===============HERE  
      16. o2.getClass().equals(B.class) => true 

    getClass() will be useful when you want to make sure your instance is NOT a subclass of the class you are comparing with.

    一个非常完美的equals方法的写法:

       public boolean equals(Object otherObject)
       {
          // a quick test to see if the objects are identical
          if (this == otherObject) return true;

          // must return false if the explicit parameter is null
          if (otherObject == null) return false;

          // if the classes don't match, they can't be equal
          if (getClass() != otherObject.getClass()) return false;

          // now we know otherObject is a non-null Employee
          Employee other = (Employee) otherObject;

          // test whether the fields have identical values
          return name.equals(other.name) && salary == other.salary && hireDay.equals(other.hireDay);
       }

  • 相关阅读:
    Python爬虫实例:爬取豆瓣Top250
    爬虫协议 Tobots
    【Python 库】bs4的使用
    【Python 库】Selenium 的使用
    【Python 库】Selenium 浏览器驱动
    【Python 库】机器学习三剑客之 NumPy
    【Python】zip 函数的用法
    面试(一)-HashMap
    由树到数据库索引
    Win10下安装RabbitMQ以及基本知识学习
  • 原文地址:https://www.cnblogs.com/openfire/p/3030750.html
Copyright © 2011-2022 走看看