美文网首页
245不等于245的时候——基本数据类型和包装类的区别

245不等于245的时候——基本数据类型和包装类的区别

作者: Slience无言 | 来源:发表于2016-12-30 17:50 被阅读0次

部分转自http://blog.csdn.net/shaowei213/article/details/39359239

做数据库的时候一般都会有一个主键,这个主键我们常常设置为整型自增的,通过主键来找一个唯一的用户,判断主键是不是这个用户的就成为了系统逻辑中很重要的一环。有一天我把一个User表的id设置为了Integer类型的,然后在一个钱包表里有一个UserId在对User表做映射,用户在操作钱包的时候需要对钱包表的UserId和当前用户的id进行比较,我是这样比较的

if(wallet.getUserId() == user.getId())

但是有时候却验证不对,我怒了就把wallet.getUserId() 和user.getId()都打印到控制台,发现都是245,也就是说是一致的,那为什么if判断为false呢?原因在于包装类和基本数据类型判断方式是不同的

        Integer num1 = new Integer(1);
        Integer num2 = new Integer(1);
        System.out.println(num1 == num2);//false
        System.out.println(num1.equals(num2));//true

所以当两个要比对id的实体类里面的id类型是Integer而不是int的话就需要使用equals来进行比对,如果是int类型的用==就好

相关文章

网友评论

      本文标题:245不等于245的时候——基本数据类型和包装类的区别

      本文链接:https://www.haomeiwen.com/subject/fbolvttx.html