浅谈newInstance()方法和new关键字
来源:互联网 发布:淘宝刷手退款能报警吗 编辑:程序博客网 时间:2024/05/22 13:49
网上看到了一段工厂类是这么写的:
public class SimpleFactory<T> {@SuppressWarnings({ "unchecked", "rawtypes" })public T getInstance(Class clazz) {try {return (T) clazz.newInstance();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return null;}}
发现这个东西 return (T) clazz.newInstance(); ,就研究了一下。
它们的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。
那么为什么会有两种创建对象方式?这主要考虑到软件的可伸缩、可扩展和可重用等软件设计思想。
我们使用关键字new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证:
1、这个类已经加载;2、这个类已经连接了。
newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。
这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦(降低耦合度)的手段。
最后用最简单的描述来区分new关键字和newInstance()方法的区别:
* newInstance: 弱类型。低效率。只能调用无参构造。
* new: 强类型。相对高效。能调用任何public构造。
1 0
- 浅谈newInstance()方法和new关键字
- newInstance()方法和new关键字
- newInstance()方法和new关键字
- 关键字new和newInstance方法区别
- 关键字new和newInstance方法区别
- 关键字new和newInstance方法区别
- 关键字new和newInstance方法区别
- java关键字new和newInstance方法区别
- new关键字和newInstance()方法的区别
- Java newInstance()方法和new关键字区别
- newInstance()方法和new关键字的区别
- 关键字new和newInstance方法区别
- new关键字和newInstance()方法的区别
- Java关键字new和newInstance的区别方法(转)
- Java关键字new和newInstance的区别方法
- Java关键字new和newInstance方法的区别
- Java关键字new和newInstance的区别方法
- Java关键字new和newInstance的区别方法
- 更新mac自带的python
- 二维码简要介绍
- Google Search APK can not work on android 4.2
- spring mvc常用的注解:
- 方格的走法
- 浅谈newInstance()方法和new关键字
- 第六讲-四个项目
- HDU_1698_区间更新
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- servlet学习笔记--如何追踪session
- Kernel configuration is invalid. include/linux/autoconf.h or include/config/auto.conf are m
- 简单的命令行总结、git命令行
- Hologram的实现
- JAVA-FINAL