- Java.lang 包类
- Java.lang - 首页
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包额外内容
- Java.lang - 接口
- Java.lang - 错误
- Java.lang - 异常
- Java.lang 包有用资源
- Java.lang -有用资源
- Java.lang - 讨论
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
广告