欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

java 实现将Object类型转换为int类型

时间:2022-06-13 10:13:17|栏目:JAVA代码|点击:

如何将Object类型转换为int类型

Object object = null;
try
{
    Integer.parseInt(object.toString());
}
catch (NumberFormatException e)
{}

也可以先判定一下是否是Integer

//可以先判定一下是否是Integer
Object object = "111";
if (object instanceof Integer) {
   Integer.parseInt(object.toString());
}

String转化Integer碰见的坑

项目开发中使用Interger将字符串转为Integer类型,并进行相应的比较,开始数据较小,并未发现问题,如15

String a = "15";
System.out.println(Integer.valueOf(a) == Integer.valueOf("15"));

返回的结果为true,但是给我423

String a = "423";
System.out.println(Integer.valueOf(a) == Integer.valueOf("423"));

返回的结果为false,立马查看Integer的源码,发现了如下代码

public static Integer valueOf(int i) {     
      final int offset = 128;     
      if (i >= -128 && i <= 127) { // must cache      
        return IntegerCache.cache[i + offset];     
     }     
     return new Integer(i);     
} 

发现jdk未-128到127的数据做了一个缓存,如果数字在这个范围内,是不会再从新new Integer的。问题,明白了,当为423时,会创建2个对象,而我们比较是使用 == 比较地址符的,所以肯定不相同。

我们可以查看下内存地址。15的内存地址

423的地址

423的内存地址不一样。所以我们需要使用equals来做比较,不应该使用==来比较

上一篇:Java接口DAO模式代码原理及应用详解

栏    目:JAVA代码

下一篇:浅谈collection标签的oftype属性能否为java.util.Map

本文标题:java 实现将Object类型转换为int类型

本文地址:http://www.codeinn.net/misctech/204635.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有