关于instanceof和转型的理解

来源:互联网 发布:中远网络北京有限公司 编辑:程序博客网 时间:2024/05/16 19:50
package ClassPuzzle;public class TypePuzzle {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString str = null;//尽管null对于每一个引用类型来说都是其子类型,但是instanceof操作符被定义为在其左操作数为null时返回false。System.out.println(str instanceof String);//因为instanceof操作符有这样的要求:如果两个操作数的类型都是类,其中一个必须是另一个的子类型System.out.println(new TypePuzzle() instanceof String);//与instanceof操作相同,如果在一个转型操作中的两种类型都是类,那么其中一个必须是另一个的子类型。尽管对我们来说,这个转型很显然会失败,//但是类型系统还没有强大到能够洞悉表达式new Object()的运行期类型不可能是Type3的一个子类型。因此,该程序将在运行期抛出ClassCastException异常。TypePuzzle tp = (TypePuzzle)new Object();}}


原创粉丝点击