Java の java.lang.ClassCastException
親クラスから子クラスのオブジェクトにオブジェクトをキャストしようとすると、java.lang.ClassCastException
が発生します。 ただし、まったく関係のない 2つの型の間でオブジェクトを変換しようとすると、スローされることもあります。
この記事は、Java の java.lang.ClassCastException
を処理するのに役立ちます。
Java の java.lang.ClassCastException
以下のプログラムは、Object 型のオブジェクト obb
を作成し、オブジェクト obb
を String 型のオブジェクト shh
に型付けします。 Object クラスが Java.ClassCastException
のすべてのクラスの親クラスであることがわかっているため、オブジェクトをその子型に型キャストしようとすると、Java.lang
になります。
コード - classCast.java
:
public class classCast {
public static void main(String[] args) {
try {
Object obb = new Object();
String shh = (String) obb;
System.out.println(shh);
} catch (Exception e) {
System.out.println(e);
}
}
}
出力:
Java で java.lang.ClassCastException
を解決する
新しい型が、オブジェクトを型キャストしようとしているクラスの親クラスの 1つに属していることを確認するか、親オブジェクトをその子型に型キャストしないようにして、ClassCastException
の発生を防ぎます。 コンパイル時の検証を提供するジェネリックを使用して、コレクションの利用中に ClassCastException
を防ぐことができます。
RuntimeException
子クラスであるため、未チェックの例外です。 親オブジェクトを子型に型キャストしたり、オブジェクトをインスタンスではないサブクラスに型キャストしたりする場合など、コースをある型から別の型に不適切に型キャストしようとすると、JVM はこの例外を自動的に発生させます。
コード - classCast.java
:
package classcaste;
public class classCast {
public static void main(String[] args) {
try {
String shh = "shiv";
Object obb = (Object) shh;
System.out.println(obb);
} catch (Exception e) {
System.out.println(e);
}
}
}
出力:
shiv
Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.
LinkedIn