JAVA强制类型转换常见错误

    xiaoxiao2021-10-31  67

    这篇文章主要讲解:JAVA强制类型转换经常遇到的问题,主要分为2种情况。

    1、当两个类没有继承关系时:

    package Test; public class Test { public static void main(String []args) { C c = new C(); B b = (B) c; } } class B extends A { public void locate() { System.out.println("class B"); } } class C { public void locate() { System.out.println("class C"); } }此时,(B)c这行代码下边会出现错误提示:

    Cannot cast from C to B 2、当超类强制转换为子类时:

    package Test; public class Test { public static void main(String []args) { A a = new A(); B b = (B) a; } } class A { public void locate() { System.out.println("class A"); } } class B extends A { public void locate() { System.out.println("class B"); } } 这时,代码不会出现错误提示,但运行时会抛出异常: java.lang.ClassCastException正确解决办法:在进行强制类型转换时,使用instanceof进行判断:

    package Test; public class Test { public static void main(String []args) { A a = new A(); if(a instanceof B) { B b = (B) a; } } } class A { public void locate() { System.out.println("class A"); } } class B extends A { public void locate() { System.out.println("class B"); } }

    转载请注明原文地址: https://ju.6miu.com/read-677916.html

    最新回复(0)