java Class对象
2013-07-11 12:59
232 查看
今天专门看了下Java中Class 到底是个什么东西。张张个人见识,我们知道Java在运行之前会把文件编译成.class文件。对于每个.class文件都有一个Class对象和他对应,这个对象保存了.class文件中的类信息。你可以通过Class对象来获取你想要的类信息。那么如何来获取Class对象呢,下面介绍几种获取Class对象的常用方法。
1. 如果在本类中,可以通过this.getClass();方法获取。如:Class<?> clazz = this.getClass();
2. 通过对象实例获取,如:Animal an = new Animal(); Class<?> clazz = an.getClass();
3. 通过Class.forName("xxx.xx.类名");
4. 通过对象.class的形式获取。如:Class<Animal> clazz = Animal.class;
接下来我们可以根据获取的Class对该类进行操作了,这里也举个例子吧,就用Class来创建新的实例吧。
创建实例一:含有默认构造函数的情况下。直接用newInstance();
创建实例二:在知道构造函数参数类型的情况下(当然构造函数参数类型可以通过Class获取构造函数,然后获取构造函数参数类型),这里假设已经获取到了class的构造函数参数类型。Animal anl = clazz.getConstructor(String.class,Integer.class).newInstance();
1. 如果在本类中,可以通过this.getClass();方法获取。如:Class<?> clazz = this.getClass();
2. 通过对象实例获取,如:Animal an = new Animal(); Class<?> clazz = an.getClass();
3. 通过Class.forName("xxx.xx.类名");
4. 通过对象.class的形式获取。如:Class<Animal> clazz = Animal.class;
接下来我们可以根据获取的Class对该类进行操作了,这里也举个例子吧,就用Class来创建新的实例吧。
创建实例一:含有默认构造函数的情况下。直接用newInstance();
创建实例二:在知道构造函数参数类型的情况下(当然构造函数参数类型可以通过Class获取构造函数,然后获取构造函数参数类型),这里假设已经获取到了class的构造函数参数类型。Animal anl = clazz.getConstructor(String.class,Integer.class).newInstance();
相关文章推荐
- java 反射机制 之 Class.forName() 获取class的对象
- java中的class对象解释
- 关于使用动态代理创建代理对象是报错 java.lang.ClassCastException: $Proxy0 cannot be cast to 的解决办法
- 【转】 java中Class对象详解和类名.class, class.forName(), getClass()区别
- java中利用类名生成Class对象,通过class对象创建实体类的理解
- Java通过反射机制获取Class对象
- Java获取package下所有的class对象(普通文件包和Jar文件包)
- 反射机制_介绍_Class对象获取_动态操作_构造器_方法_属性JAVA211-212
- [Java] Class对象
- 深入理解Java类型信息(Class对象)与反射机制
- Java的类对象锁 synchronized(xxx.class)
- Java反射基础(一)--Class对象获取
- java中Class对象详解
- class对象 java中的反射(J2SE入门20)
- Java中的Class对象
- Java反射:类名.class、class.forName()、对象.getClass区别 详解
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- 从头认识java-12.2 Class对象(3)-.class
- 【Think in Java】学习笔记_Class对象
- 对象逆序列化报错:java.lang.ClassNotFoundException