Java强制类型转换注意

Java可以强制向下转型

Java不可以强制向上或不同类型的转型

但有时候也需要注意,比如:

Object obj2 = new Integer(100);

String strVal = (String)obj2;

第2个语句虽然表面上看是强制向下转型,但是obj2本质上是Integer类型,这样就是不同类型的转换,从而报CalssCastException的异常。

使用强制类型转换的时候,最好用instanceof做个类型检查,以判断是否可以转换,否则容易抛出CalssCastException异常。

每个对象的类型在对象创建的时候已经确定并且不能更改,所谓强制转换也只是使其表面上换成了另一种类型,可以使用其方法对这个对象进行处理。那么可想而知,把物品A 当成物品B来使用,当A能能够被当成B的时候大家都相安无事,你走你的路,我过我的桥,一旦A不能被当成B,它不会去自动调用toString()方法,而是马上就会报错。

原文地址:https://www.cnblogs.com/Ronson-Shen/p/7908541.html