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

如何将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来做比较,不应该使用==来比较

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java 数据类型及类型转换的互相转换实例代码

    一.基本数据类型 java的数据类型可以分为两大类:基本类型和复合类型. 基本类型:整型(int,short,long,byte).浮点型(float,double).布尔型(boolean).和字符型(char) 复合类型:数组,类,接口 1.整型 各种整型数据所占空间及数的范围 数据类型 所占内存空间/位 数的范围 byte 8 -128~127 short 16 -32768~32767 int 32 -2^31~2^31-1 long 64 -2^63~2^63-1 整型以补码的形式存放

  • Java数据类型转换详解

    一.基本数据类型阐述 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. [注]JAVA没有unsigned类型 (1). 整数:int,short,byte,long (2). 浮点型:float,double (3). 字符:char (4). 布尔:boolean 基本型别     大小         最小值            最大值 void boolean     -----         -----             

  • java中long数据类型转换为int类型

    由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 long ll = 300000; int ii = (int)ll; 二.调用intValue()方法 long ll = 300000; int ii= new Long(ll).intValue(); 三.先把long转换成字符串String,然后在转行成Integer long ll = 300000; i

  • 浅析Java中对象的创建与对象的数据类型转换

    Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据类型:基本数据类型(在Java中,boolean.byte.short.int.long.char.float.double这八种是基本数据类型).引用类型和null类型.其中,引用类型包括类类型(含数组).接口类型.     下列语句声明了一些变量: int k ; A a; //a是A数据类型的对象变量名. B b1,b2,-,b10000;// 假定B是抽象类或接口. String s; 注意:从数据类型

  • java的各种类型转换全部汇总(推荐)

    java类型转换 Integer String Long Float Double Date 1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小

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

    如何将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.toSt

  • java如何将Object数组转换为指定类型数组

    目录 将Object数组转换为指定类型数组 1.转换函数 2.测试main函数 3.实体类 将Object转换为数组的情况 将Object数组转换为指定类型数组 1.转换函数     public static <T> T[] convertArray(Class<T> targetType, Object[] arrayObjects) {         if (targetType == null) {             return (T[]) arrayObject

  • 使用Java代码将IP地址转换为int类型的方法

    基本知识点    IP --> 整数: 把IP地址转化为字节数组 通过左移位(<<).与(&).或(|)这些操作转为int 整数 --> IP: 将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到的数字即为第一段IP. 将整数值进行右移位操作(>>>),右移16位,再进行与操作符(&)0xFF,得到的数字即为第二段IP. 将整数值进行右移位操作(>>>),右移8位,再进行与操

  • Java形参和实参的实例之Integer类型与Int类型用法说明

    经常会有这样一道面试题,有两个整形变量分别是a = 1 ,b = 2.编写一个方法swap互换他们的值. 
class
 
Main
 
{


 
public
 
static
 
void
 main
(
String
[]
 args
)
 
{


 
Integer
 a 
=
 
1
;


 
Integer
 b 
=
 
2
;


 
System
.
out
.
println
(
"a="
 
+
 a 
+
 
",b="
 
+
 b


  • Java任意长度byte数组转换为int数组的方法

    前言 嗯.最近工程上遇到一个byte数组转换为int的问题,解决过程中遇到了几个坑,经过各种查资料终于还是解决了.撒花. Java的位运算以及byte数组与其他类型数据的转换比c/c++感觉麻烦一些.这里简单说明一下byte数组和int的转换吧. 总所周知,int类型数据在Java中占据32 bit,byte占据8 bit,这样的话,正常情况下4个byte可以转换成一个int类型数据. 当然,不正常情况下,3个byte或者2个byte甚至1个byte都可以转换为int数据,只需要高位补上就行.

  • javaScript把其它类型转换为Number类型

    一:基本类型 字符串 把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零 console.log(Number("12.5")); //12.5 console.log(Number("12.5px")); //NAN console.log(Number("12.5.5px"));//NAN console.log(Number(""));//0 布尔 consol

  • Python3中bytes类型转换为str类型

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 问题背景 基于URL解析报文的时候,URL链接出现str类型+bytes类型是报错TypeError,如何解决这个问题呢? 解决方案 方法一:利用str函数 方法二:利用b

  • sqlserver中将varchar类型转换为int型再进行排序的方法

    如果我们数据库的ID设置为varchar型的 在查询的时候order by id的话我们是不希望看到如下情况的. 我们可以把varchar转换为int 然后进行排序 一. 复制代码 代码如下: select * from yourtable order by cast(yourcol as int); 适用于SQLServer Oracle 二. 复制代码 代码如下: select * from yourtable order by convert(int,yourcol); 仅适用于SQLSe

  • sql将时间类型转换为字符串类型汇总

    日期时间转字符串 复制代码 代码如下: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select C

随机推荐