所有的技术实现的目标只有一点:重用性
java.lang.Object
public final Class> getClass(); 根据实例化对象找到对象的所属类型
java.lang.Class
public final class Class
getName():String:获得该类型的全称名称。
getSuperClass():Class:获得该类型的直接父类,如果该类型没有直接父类,那么返回null。
getInterfaces():Class[]:获得该类型实现的所有接口。
isArray():boolean:判断该类型是否是数组。
isEnum():boolean:判断该类型是否是枚举类型。
isInterface():boolean:判断该类型是否是接口。
isPrimitive():boolean:判断该类型是否是基本类型,即是否是int,boolean,double等等。
isAssignableFrom(Classcls):boolean:判断这个类型是否是类型cls的父(祖先)类或父(祖先)接口。
getComponentType():Class:如果该类型是一个数组,那么返回该数组的组件类型。
此外还可以进行类型转换这类的操作,主要方法有:
asSubclass(Class clazz):Class:将这个类型
1.【Object类支持】Object类可以根据实例化对象获取Class对象,必须实例化对象才能获得
2.【jvm直接支持】采用类.class形式实例化,必须要导入开发包
3.【Class类支持】Class.forName(String className)
在Java中表示一个特定类型的类型类可以用“类型.class”的方式获得
实例化的预选房:
jdk1.9之前
public T newInstance() throws Exception 代替了关键字new
jdk1.9之后
clazz.getDeclaredConstructor().newInstance(