Java の java.lang.ClassCastException

Shiv Yadav 2024年2月15日
  1. Java の java.lang.ClassCastException
  2. Java で java.lang.ClassCastException を解決する
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.lang.Object は java.lang.String にキャストできません

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 Yadav
Shiv Yadav avatar Shiv Yadav avatar

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

関連記事 - Java Error