下图为String源码

讲上图中 if (  anObject instanceof Object)  改为if ( this instanceof Object && anObject instanceof Object) 后s.equals("asd")也可以避免NullPointerException

以下代码为仿照仿照上图重写的一个方法 :

public boolean equals(String str , Object anObject){
  
   if (str == anObject) {
      return true;
  }
  if ( str instanceof Object && anObject instanceof Object) {
      String anotherString = (String)anObject;
      int n = str.length();
      if (n == anotherString.length()) {
   char v1[] = str.toCharArray();
   char v2[] = anotherString.toCharArray();
   int i = 0;
   int j = 0;
   while (n-- != 0) {
       if (v1[i++] != v2[j++])
    return false;
   }
   return true;
      }
  }
  return false;
 }

转载于:https://www.cnblogs.com/IT-WJ/p/3607553.html

asd.equals(s)与s.equals(asd)为什么前者可避免NullPointerException相关推荐

  1. 重写equals方法的hashcode_Java equals 和 hashCode 的这几个问题可以说明白吗?

    前言 上一篇文章 如何妙用Spring 数据绑定机制,灵魂追问 环节留下了一个有关 equals 和 hashcode 问题 .基础面试经常会碰到与之相关的问题,这不是一个复杂的问题,但很多朋友都苦于 ...

  2. ==与equals,String的equals()方法

    ==介绍 它的作用是判断两个对象的地址是不是相等.即,判断两个对象是不是同一个对象(基本数据类型比较的是值,引用数据类型比较的是内存地址). 基本数据类型:byte,short,char,int,lo ...

  3. hashcode 和 equals 的关系_Java equals 和 hashCode 的这几个问题可以说明白吗?

    前言 上一篇文章 如何妙用 Spring 数据绑定? ,灵魂追问 环节留下了一个有关 equals 和 hashcode 问题 .基础面试经常会碰到与之相关的问题,这不是一个复杂的问题,但很多朋友都苦 ...

  4. java的equals方法_Java Date equals()方法与示例

    java的equals方法 日期类equals()方法 (Date Class equals() method) equals() method is available in java.util p ...

  5. java的equals方法_Java Vector equals()方法与示例

    java的equals方法 向量类的equals()方法 (Vector Class equals() method) equals() method is available in java.uti ...

  6. python字符串equals方法_编写equals方法

    我们知道List是一种有序链表:List内部按照放入元素的先后顺序存放,并且每个元素都可以通过索引确定自己的位置. List还提供了boolean contains(Object o)方法来判断Lis ...

  7. java equals 区别_Java中equals和==的区别

    转自:http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据 ...

  8. Java 中==和 equals 的区别, equals 和 hashCode 的区别

    ==操作符用来比较两个基本类型变量时,比较的是值:用来比较引用类型变量时,比较的是引用的地址 equals方法是基类Object的方法,用于比较两个对象的内容是否相同,Object类中equals方法 ...

  9. java equals比较_Java中equals()和==的比较

    今天写点简单点的吧,equals和==的作用都是作比较,但==是条件运算符,而equals是一个继承了object类的方法,也就是说所有类都有一个equals方法,我们先来看一下equals方法在ob ...

最新文章

  1. webshpere下载地址
  2. php递归复制文件内容,PHP实现递归复制整个文件夹的类实例_php技巧
  3. afe模拟前端的重要性_UCD3138模拟前端(AFE)模块:模拟前端模块(AFE)简介
  4. Node.js在不同平台的安装方法步骤详解
  5. 关于dorado的存储问题
  6. 四面阿里,看看你都会吗
  7. linux QT 结束当前进程_软件特攻队|为什么 Qt 成为 c++ 界面编程的第一选择?
  8. 生成验证码的流程分析.
  9. 欢乐的跳(洛谷P1152题目链接,Java语言描述)
  10. 拼多多、微博等在新一轮经济变化中将做出更大贡献
  11. 简短总结一下C#里跨线程更新UI
  12. 导出csv文件时,处理分隔符问题(转)
  13. android之自定义弹框
  14. [转][darkbaby]任天堂传——失落的泰坦王朝(下)
  15. SpringBoot整合ureport2
  16. 硬盘测试工具 CrystalDiskMark 8.0.0 正式版
  17. 学3D建模的电脑配置
  18. 宋人千首绝句【全十卷】
  19. 操作系统和编程语言简单描述
  20. C. Dominant Piranha(思维)

热门文章

  1. sql 两个表字段不一样合并查询_数据分析进阶--SQL多表查询
  2. 251f与ips屏显示器对比_1千多元预算,2020年PS平面设计/摄影后期显示器推荐/选购指南(2k+高色域屏)...
  3. signature=65a5d6b0ac441e09ae68e9bbee76cba1,Bortezomib
  4. 雷柏鼠标怎么配对接收器_四款蓝牙鼠标的详细使用体验对比
  5. C#中数值型数据保留N位小数方法
  6. C++知识点48——类继承与类的作用域
  7. 记录一下自动白平衡与自动亮度
  8. Radio Button详细用法
  9. ViSP视觉库中实现AprilTag的方法
  10. MFC多线程同步互斥