Java Class类以及获取Class实例的三种方式
2013-12-12 21:53
218 查看
java.lang
类 Class<T>
T - 由此 Class 对象建模的类的类型。例如,String.class 的类型是Class<String>。如果将被建模的类未知,则使用Class<?>。public final class Class<T> extends Object implements java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lang.reflect.Type, java.lang.reflect.AnnotatedElement
获取Class实例的三种方式:
运用.class的方式来获取Class实例。对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例。例如,Integer.TYPE 与 int.class是等效的,都是int。
利用对象调用getClass()方法获取该对象的Class实例;
使用Class类的静态方法forName(),用类的名字获取一个Class实例(static Class forName(String className) ),这种方式灵活性最高,根据类的字符串全名即可获取Class实例,可以动态加载类,框架设计经常用到;
Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的defineClass方法自动构造的,因此不能显式地声明一个Class对象。
虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。运行程序时,Java虚拟机(JVM)首先检查是否所要加载的类对应的Class对象是否已经加载。如果没有加载,JVM就会根据类名查找.class文件,并将其Class对象载入。
基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也都对应一个 Class 对象。
每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。
一般某个类的Class对象被载入内存,它就用来创建这个类的所有对象。
主要方法:
newInstance
public T newInstance() throws InstantiationException, IllegalAccessException
创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的
new表达式实例化该类。
抛出:
IllegalAccessException- 如果该类或其 无参 构造方法是不可访问的。
InstantiationException- 如果此
Class表示一个抽象类、接口、数组类、基本类型或 void; 或者该类没有无参构造方法。注:
illegal | [ɪ'li:ɡl]非法的 |
相关文章推荐
- Java Class类以及获取Class实例的三种方式
- Java Class类以及获取Class实例的三种方式
- Java中的Class类以及获取Class对象的三种方式
- java语言反射的概述以及三种获取字节码文件对应的Class类型的对象的方式
- 深入理解java.lang.Class类以及class类获取实例的三种方法
- java 反射 获取Class对象的三种方式
- Java基础之获取Class对象的三种方式
- java 的class类获取实例的三种方法
- Java反射02 : Class对象获取的三种方式和通过反射实例化对象的两种方式
- Java 反射---获取Class的三种方式
- java中对反射获取Class类型对象的三种方式的理解
- 获取class实例的三种方式
- 获取java中Class类实例的三种方法
- java获取Class的三种方式
- 获取某个类或者某个实例的Class的三种方式
- Java之反射--8.1.1--获取Class对象的三种方式
- java 反射之获取class对象的三种方式
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- JAVA反射(一)获取Class对象的三种方式及其区别
- java反射之获取class对象的三种方式