为了账号安全,请及时绑定邮箱和手机立即绑定

int无法直接转换为包装类Long?

int无法直接转换为包装类Long?

慕运维6449622 2016-06-12 23:44:16
查看完整描述

4 回答

?
Genment

TA贡献43条经验 获得超25个赞

public static void main(String []args){
       int a = 22;
       long b = 33;
       Long c = new Long(a);
       Long d = new Long(b);
       
       Integer i = new Integer(44);
       Long e = new Long(i);
}

以上代码都可以正常运行,int 是可以直接转换为包装类 Long的,相反则不可以,因为如果可以的话,是会丢失数据的,JAVA是不允许这种做法的。

低位数的int 转换成 高位数的long 是不需要强制转换的。

long a = 100;
int b = a; // 报错,因为会丢失数据。

long a = 100;
int b = (long)a; // 同样会报错,因为会丢失数据。

int a = 100;
long b = a; // 正常,不会丢失数据。


查看完整回答
4 反对 回复 2016-06-13
?
流逝的回忆已成空白

TA贡献8条经验 获得超17个赞

哎~ 讲过了都忘了!怎么就记不住呢、?

查看完整回答
1 反对 回复 2016-06-13
?
qyy2499760117_叶子

TA贡献188条经验 获得超91个赞

int是小类型,小类型无法直接转换为大类型,需要强制转换,    int a = 91;
// 手动装箱
double b = new Integer(a);
这种大类型转小类型是可以的

查看完整回答
反对 回复 2016-06-13
?
绿洲仙人球

TA贡献39条经验 获得超47个赞

恩,同意楼上,手动为楼上点赞

查看完整回答
反对 回复 2016-06-13
  • 4 回答
  • 0 关注
  • 2102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信