开发者学堂课程【 Java 高级编程:Class 类对象的三种实例化模式】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/376
Class 类对象的三种实例化模式
目录:
1、Object 类支持
2、JVM 类支持
3、Class 类支持
反射之中所有的核心操作都是通过 Class 类对象展开的,Class 类是反射操作的根源所在,但是这个类如果要想获取它的实例化对象,可以采用三种方式完成,首先来观察 java.lang.Class 类的定义:
public final class Class <T>
extends Object.
implements Serializable, GenericDeclaration, Type, AnnotatedElement
从 JDK 1.5 开始 Class 类在定义时候可使用泛型进行标记,这样的用法主要是希望可以避免所谓的向下转型。
下面通过具体的操作讲解三种实例化形式。
1.[ Object 类支持]
Object 类可以根据实例化对象获取 Class 对象: public final Class <?> getClass()
缺点:如果现在只想获得 Class 类对象,则必须产生指定类对象后才可以获得
2.[ JVM 直接支持]
采用“类 .class '的形式实例化
特点:如果要采用此种模式,则必须导入程序所对应的开发包
3.[ Class 类支持]
在 Class 类里面提供有一个 static 方法:
public static Class <?> forName ( String className )
throws ClassNotFoundExceptio
这种模式最大的特点是可以直接采用字符串的形式定义要使用的类型,并且程序中不需要编写任何的 import 语句。要使用的程序类不存在则会抛出 “ java . lang . ClassNotFoundException ” 异常。