我是靠谱客的博主 听话往事,最近开发中收集的这篇文章主要介绍Integer判断相等(equals),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们知道Integer是包装类型 判断相等使用equals
但是我在程序中使用时,发现:

    Integer a = new Integer(200);
    System.out.println(a.equals("200"));

输出false,当时很纳闷,equals不是比较值相等么,为什么会是true;
我就去看了下源码,原来是Integer重写了equals方法

public boolean equals(Object obj) {
  if (obj instanceof Integer) {
    return value == ((Integer)obj).intValue();
  }
  return false;
}

传入的”200”是个string类型 直接返回false。

    public static void main(String[] args) {
        Integer aInteger = Integer.valueOf(0);
        System.out.println(aInteger.equals(0));
        name(1);
    }

    private static void name(Object a) {
        System.out.println(a.getClass());
    }

输出:
true
class java.lang.Integer

使用object接收参数时,会自动装箱,将int转换成Integer对象
所以Integer比较使用 Integer.equals(int);

Integer判断相等,到底该用==还是equals:https://www.jianshu.com/p/9cb9c61b0986

最后

以上就是听话往事为你收集整理的Integer判断相等(equals)的全部内容,希望文章能够帮你解决Integer判断相等(equals)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部