关于强制类型转换的问题

//从域中获取到的string数据,知道它是int类型的要把它转成int类型

String string = request.getParameter("currPage");

//方法1

int h =Integer.parseInt(string );

//方法2,(为什么这个方法不行)

int h =(int)string;

为什么不能像方法2这样强转,

慕仰6415499
浏览 1190回答 2
2回答

风中过客

基本类型可以互相强转,String是引用类型。此外,有继承关系可以强转,int和String之间没有这种关系。附:比如:1.基本类型:int a=0;float a=8.2//error,这个不能被编译通过//我们这样写就可以了float a=(float)8.2;//把double 型的强制转换为float//也可以这样写的float a=8.2f2.引用类型:一个超类能做的东西,其子类也能做,而一个子类能做的东西超类不一定能做,所以就有这样的规则:(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不是同一继承树类编译的时候将会产生错误
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java