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

关于强制类型转换的问题

关于强制类型转换的问题

慕仰6415499 2017-05-04 00:22:27
//从域中获取到的string数据,知道它是int类型的要把它转成int类型String string = request.getParameter("currPage"); //方法1 int h =Integer.parseInt(string ); //方法2,(为什么这个方法不行) int h =(int)string;为什么不能像方法2这样强转,
查看完整描述

2 回答

已采纳
?
风中过客

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

基本类型可以互相强转,String是引用类型。

此外,有继承关系可以强转,int和String之间没有这种关系。

附:

比如:
1.基本类型:
int a=0;
float a=8.2//error,这个不能被编译通过
//我们这样写就可以了
float a=(float)8.2;//把double 型的强制转换为float
//也可以这样写的float a=8.2f

2.引用类型:
一个超类能做的东西,其子类也能做,而一个子类能做的东西超类不一定能做,所以就有这样的规则:

(1).一个子类的对象可以强制转换成为其超类的对象;
(2).一个超类的对象如果强制转换成子类的对象将在运行的时候有异常抛出;
(3).如果不是同一继承树上的类强制转换,将产生编译错误.

例如:
class A {}
class B extends A{}
class C {}

B b=new B();
A a=(A)b;//被b引用的对象强制转换为类A的对象,类B的对象具有类A对象的性质,所以可以转换成功
a=new A();
b=(B)a;//原本是类A的对象,可能不具备类B的性质,这样会在运行的时候产生异常.
C c=new C();
a=(A)c;//如果c不是同一继承树类编译的时候将会产生错误

查看完整回答
1 反对 回复 2017-05-04
  • 2 回答
  • 0 关注
  • 1187 浏览

添加回答

举报

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