Class对象的学习笔记
来源:互联网 发布:中国煤炭进口量数据 编辑:程序博客网 时间:2024/06/09 01:08
一、获取对象
1.forName()
Class.forName的好处就在于,不需要为了获得Class引用而持有该类型的对象,只要通过全限定名就可以返回该类型的一个Class引用。如果你已经有了该类型的对象,那么我们就可以通过调用getClass()方法来获取Class引用了,这个方法属于根类Object的一部分,它返回的是表示该对象的实际类型的Class引用
2.getClass
利用new操作符创建对象后,类已经装载到内存中了,所以执行getClass()方法的时候,就不会再去执行类加载的操作了,而是直接从java堆中返回该类型的Class引用。
3.类字面常量java还提供了另一种方法来生成对Class对象的引用。即使用类字面常量,就像这样:int.class,这样做不仅更简单,而且更安全,因为它在编译时就会受到检查(因此不需要置于try语句块中)。并且根除了对forName()方法的调用,所有也更高效。类字面量不仅可以应用于普通的类,也可以应用于接口、数组及基本数据类型。
当使用.class来创建对Class对象的引用时,不会自动地初始化该Class对象。为了使用类而做的准备工作包含三个步骤:1.加载、2.链接、3.初始化。
泛化Class的引用(附加通配符?)
通配符?不仅可以与extend结合,而且还可以与super关键字相结合,表示被限定为某种类型,或该类型的任何父类型。.一旦获取了该类所对应的Class对象之后,就可以通过调用Class对象的方法来获得该对象和该类的真实信息了。
通过反射来生成对象有如下两种方式:
(1)使用Class对象的newInstance()方法来创建该Class对象对应类的实例。但是这种方式要求该Class对象的对应类有默认的构造器,而执行newInstance()方法时实际上是利用默认构造器来创建该类的实例。
(2)先使用Class对象获取指定的Constructor对象,再调用Construtor对象的newInstance()方法来创建该Class对象对应类的实例。通过这种方式可以选择使用某个类的指定构造器来创建实例。
另外,如果我们不想利用默认构造器来创建java对象,而想利用指定的构造器来创建java对象,则需要利用Construtor对象,每个Construtor对应一个构造器,为了利用指定构造器来创建java对象,需要如下三个步骤:
(1)获取该Class对象;
(2)利用该Class对象的getConstrutor方法来获取指定的构造器;
(3)调用Construtor的newInstance方法来创建Java对象。
另外,如果我们不想利用默认构造器来创建java对象,而想利用指定的构造器来创建java对象,则需要利用Construtor对象,每个Construtor对应一个构造器,为了利用指定构造器来创建java对象,需要如下三个步骤:
(1)获取该Class对象;
(2)利用该Class对象的getConstrutor方法来获取指定的构造器;
(3)调用Construtor的newInstance方法来创建Java对象。
- Class对象的学习笔记
- java反射学习笔记(1):Class对象的获取,动态加载类,动态创建对象
- class template学习笔记
- PHP5学习笔记-class
- Swift 学习笔记 class
- ES6 学习笔记 Class
- Python 学习笔记:class
- 【Java笔记】创建Class对象的三种常用办法和Class单例的测试
- 面向对象的学习笔记
- Java的Class对象
- Class对象的泛化
- Class对象以及泛化的Class引用
- Java菜鸟学习笔记--面向对象篇(十五):Wrapper Class包装类
- 【cpp面向对象编程学习笔记】Class经典分类(1)without pointer member(s)
- 【cpp面向对象编程学习笔记】Class经典分类(2)with pointer member(s)
- [学习笔记]关于JavaBran的部署--部署class
- 【学习笔记】 C++中struct 和class的区别
- java编程思想学习笔记 泛化的class引用
- 应用宝发布apk问题
- 马球比赛
- JavaScript 必掌握的十大难点知识
- poj1426 Find The Multiple
- 方法的重载和重写的区别
- Class对象的学习笔记
- redis 超时失效key 的监听触发
- kmp算法学习(未完成)
- C/S模型-TCP
- 设计模式学习笔记十一:适配器模式(Adapter Pattern)
- Android ijkplayer 编译的 bilibili 开源编译版本上,去掉失败的依赖,增加对 https 支持
- 用SQL命令手工创建CDB
- 【PAT】【Advanced Level】1060. Are They Equal (25)
- XMLHttpRequest对象