Short类型的List contains(Byte.valueOf("1"))的问题
来源:互联网 发布:centos 超时时间 编辑:程序博客网 时间:2024/06/04 19:19
概述
最近测试人员发现了一个bug
,我找了半天,一直找不到bug
的原因。后来debug
代码的时候,才发现一个隐藏的bug
。
如下代码:
private static List<Short> tempList = Arrays.asList(new Short [] {13,17,18,20});
这个时候用如下代码判断某个数字是否在tempList
中:
if (tempList.contains(Byte.valueOf("13"))) { System.out.println("xxxxxx"); }
这个时候,代码始终无法输出xxxxxx
这个字符串,原因是tempList
是Short
类型的List
,传入一个Byte
类型的对象进去后,虽然值是13,但是毕竟是Short
对象和Byte
对象之间的比较,比较的是两个对象的内存地址,所以一直不相等。代码要如下修改:
if (tempList.contains(Short.valueOf("13"))) { System.out.println("xxxxxx"); }
附带ArrayList contains
源代码:
可以看到ArrayList
的contains
方法就是使用对象的equals
方法来进行比较的。
备注:写代码的时候还是要非常的小心和细心。
4 1
- Short类型的List contains(Byte.valueOf("1"))的问题
- char/byte/short类型的加法和类型转换问题
- byte,short,char类型的运算
- byte类型的问题
- list集合的contains问题
- java中byte char short类型数据的操作说明
- java-int&short-byte类型转换问题
- string字符串的contains方法,valueOf方法
- 初级程序员 - List.contains()的问题
- 关于List的contains方法问题
- 类型转换问题(java会把byte,short和char的运算操作转换为int类型即低精度自动向高精度转换)
- 查看byte,Short,lang,double,char类型的位数和大小的范围述
- List的contains()方法
- List的contains()方法
- List的contains()方法
- List的contains()方法
- List的Contains使用方法
- List的contains()方法
- BZOJ 1047: [HAOI2007]理想的正方形
- yolo-v1 train和test自己的分类和数据
- Win10下配置Apache Http Server与连接CGI
- 零基础学python之python的变量
- 1026. Table Tennis (30)-PAT甲级真题(模拟)
- Short类型的List contains(Byte.valueOf("1"))的问题
- 【TaoTao】使用JQueryJsonp 完美解决JS跨域问题
- vc++6.0修改字体
- H5访问手机相册与照相上传至服务器
- Win7 Cygwin搭建Cloud9 IDE环境
- Qt之学生信息管理系统(version:1.0)
- CS_Demo
- yolo-v2修改只识别person
- HTML 账号注册页面