“ClassCastException”消息指示了Java代码正在尝试将对象转换为错误的类。在来自Java Concept of Day的这个例子中,运行以下程序:package com;
class A
{
int i = 10;
}
class B extends A
{
int j = 20;
}
class C extends B
{
int k = 30;
}
public class ClassCastExceptionDemo
{
public static void main(String[] args)
{
A a = new B(); //B type is auto up casted to A type
B b = (B) a; //A type is explicitly down casted to B type.
C c = (C) b; //Here, you will get class cast exception
System.out.println(c.k);
}
}
导致以下错误:Exception in thread “main” java.lang.ClassCastException: com.B cannot be cast to com.C
at com.ClassCastExceptionDemo.main(ClassCastExceptionDemo.java:23)
Java代码将创建一个类和子类的层次结构。为了避免“ClassCastException”错误,请确保新类型属于正确的类或其父类之一。如果使用泛型,则编译代码时可能会捕获这些错误。
阅读此教程以了解如何修复“ClassCastException”的Java软件错误。(@java_concept)