java实现将Object类型转换为int类型如何将Object类型转换为int类型
1 2 3 4 5 6 7Object object = null;
try
{
Integer.String()); }
catch(NumberFormatException e) {}
也可以先判定⼀下是否是Integer
1 2 3 4 5//可以先判定⼀下是否是Integer Object object = "111";
if(object instanceof Integer) {
Integer.String()); }
String转化Integer碰见的坑
项⽬开发中使⽤Interger将字符串转为Integer类型,并进⾏相应的⽐较,开始数据较⼩,并未发现问题,如15
1 2String a = "15";
System.out.println(Integer.valueOf(a) == Integer.valueOf("15"));
返回的结果为true,但是给我423
1 2String a = "423";
System.out.println(Integer.valueOf(a) == Integer.valueOf("423"));
返回的结果为false,⽴马查看Integer的源码,发现了如下代码
1 2 3 4 5 6 7public 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);
}
bigdecimal转换为integer发现jdk未-128到127的数据做了⼀个缓存,如果数字在这个范围内,是不会再从新new Integer的。问题,明⽩了,当为423时,会创建2个对象,⽽我们⽐较是使⽤ == ⽐较地址符的,所以肯定不相同。
我们可以查看下内存地址。15的内存地址
423的地址
423的内存地址不⼀样。所以我们需要使⽤equals来做⽐较,不应该使⽤==来⽐较

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。