从Class.forName想到的……
来源:互联网 发布:中国安徽网络电视台 编辑:程序博客网 时间:2024/04/27 23:48
Class.forName是“用来加载类的”,其实这话还是有点抽象,更加具体的说就是“用来将类加载到jvm中”,这样就清楚许多了。
我们都知道,所有的class文件都要加载到jvm中才可以得到运行,所以当我们需要加载一个类时就可以用Class.forName将这个类加载到jvm中。下面两个语句:
A a = (A)Class.forName("pacage.A").newInstance();
和
A a = new A();
都是创建包package中类A的一个对象a。这两种写法爱用哪种就用哪种,当然可以发现,我们用的最多的还是直接new吧!很少人问为什么,虽然很多人在使用jdbc干活的时候读用到了Class.forName这句代码。
我们观察第一个创建对象的方式,它有一个最大的好处就是类名可以作为参数的形式传入,然后创建对象。这使得一个简单的new可以分为两步进行:
1、第一步
Class temp = Class.forName("pacage.A");;
2、第二步
A a = temp.newInstance();
看到了吧,一个简单的new可以分解为两步,而这里关键的参数是最重要的,我们说“有参数就有变化”,这个参数带来的变化是千变万化的。
工厂模式相信大家伙都知道,Spring的DI就是一个很好的工厂模式,当我们使用Spring进行开发时,new语句已经不出现了,那么对象怎么创建的呢?对就是用的Class.forName进行的。这也就是为什么我们在使用Spring的时候常常要在配置文件里面将类的路径配置的完完当当的。
就这么一个简单的new, Java就将其设计为两种方式了,而Class.forName的方式实在是让我叫绝。
真的是“多一个参数就多了一个精彩啊”,这里面的“玄机”需要好好的感悟……
- 从Class.forName想到的……
- class.forname().newInstanc…
- Class.forName的作用以及为什么要…
- Class.forName的含义
- Class.forName的含义
- Class.forName的含义
- Class.forName的含义
- Class.forName的使用
- Class.forName()的作用
- class.forname的作用
- class.forName()的理解
- Class.forName()的理解
- class.forName()的作用
- Class.forName的作用
- Class.forName的理解
- class.forName()的作用
- Class.forName的理解
- Class.forName的作用
- 笔记1
- IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
- 进程通信之二 管道技术第二篇 匿名管道
- 从 C++ 到 Qt
- 2 引用类型
- 从Class.forName想到的……
- 好书
- QDataWidgetMapper 学习
- 第一节xml课上笔记
- 扫自己只盲 1
- 明天就是笔试和面试的日子
- java 反射机制中classloader的关系
- linux下firefox购买火车票
- ToolTip 的使用