Java Class cast() 方法



描述

Java Class cast() 方法將物件強制轉換為由該 Class 物件表示的類或介面。

宣告

以下是 java.lang.Class.cast() 方法的宣告

public T cast(Object obj)

引數

obj − 要強制轉換的物件。

返回值

此方法在強制轉換後返回物件,如果 obj 為 null,則返回 null。

異常

ClassCastException − 如果物件不為 null 且不可分配給型別 T。

將物件強制轉換為類的示例

以下示例顯示了 java.lang.Class.cast() 方法的用法。在這個程式中,我們建立了一個 ClassDemo 的例項,然後使用 getClass() 方法獲取並列印例項的類。我們有兩個類 A 和 B,其中 B 擴充套件 A。現在建立 A 和 B 的例項,然後使用 cast() 方法將 B 的例項強制轉換為 A。

package com.tutorialspoint;

class A {
   public static void show() {
      System.out.println("Class A show() function");
   }
}

class B extends A {
   public static void show() {
      System.out.println("Class B show() function");
   }
}

public class ClassDemo {

   public static void main(String[] args) {

      ClassDemo cls = new ClassDemo();
      Class c = cls.getClass();      
      System.out.println(c);  

      Object obj = new A();        
      B b1 = new B();
      b1.show();

      // casts object
      Object a = A.class.cast(b1);

      System.out.println(obj.getClass());
      System.out.println(b1.getClass());
      System.out.println(a.getClass());               
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

class com.tutorialspoint.ClassDemo
Class B show() function
class com.tutorialspoint.A
class com.tutorialspoint.B
class com.tutorialspoint.B

強制轉換物件到類時遇到異常的示例

以下示例顯示了 java.lang.Class.cast() 方法的用法。在這個程式中,我們建立了一個 ClassDemo 的例項,然後使用 getClass() 方法獲取並列印例項的類。我們有兩個類 A 和 B。現在建立 A 和 B 的例項,然後使用 cast() 方法將 B 的例項強制轉換為 A。由於 B 與 A 不相容,因此會引發異常。

package com.tutorialspoint;

class A {
   public static void show() {
      System.out.println("Class A show() function");
   }
}

class B {
   public static void show() {
      System.out.println("Class B show() function");
   }
}

public class ClassDemo {

   public static void main(String[] args) {

      ClassDemo cls = new ClassDemo();
      Class c = cls.getClass();      
      System.out.println(c);  

      Object obj = new A();        
      B b1 = new B();
      b1.show();

      // casts object
      Object a = A.class.cast(b1);

      System.out.println(obj.getClass());
      System.out.println(b1.getClass());
      System.out.println(a.getClass());               
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

class com.tutorialspoint.ClassDemo
Class B show() function
Exception in thread "main" java.lang.ClassCastException: Cannot cast com.tutorialspoint.B to com.tutorialspoint.A
	at java.base/java.lang.Class.cast(Class.java:4067)
	at com.tutorialspoint.ClassDemo.main(ClassDemo.java:28)
java_lang_class.htm
廣告
© . All rights reserved.