Loongforever

Java中的一个类型转换问题

一.Object转Integer

Java中hibernate或者ResultSetHandler查询sql语句, 返回的object类型其实是Long类型, 而不是Integer类型, 因此此时直接将返回的Object转换为Integer类型会抛出类型转换的错误. 我们必须先将其转换为Long类型, 再转换为Integer类型.

//int count = ((Integer)query.uniqueResult()).intValue();   
//改成   
int count = ((Number)query.uniqueResult()).intValue();   
//这样就可以两个版本同时兼容.

注: 可通过instanceof关键字判断object对象的真实类型.


二. Long与Integer类型互转

Java中引用类型之间的互相转换必须要有继承关系. 但Integer与Long类型之间没有继承关系. 因此它们之间是不可以直接进行转换的.

可通过如下方式转换:

1.将long型转化为int型,这里的long型是基础类型:

long   a = 10;    int b = (int)a;

2.将Long型转换为int 型的,这里的Long型是包装类型:

Long a = 10;    int b=a.intValue();

3.将int型转化为long型,这里的int型是基础类型:

int a = 10;    long b = (int)a;

4.将Integer型转化为long型,这里的Integer型是包装类型:

int a = 10;    Long b = a.longValue();

posted on 2017-12-13 20:36  Loongforever  阅读(512)  评论(0编辑  收藏  举报

导航