通过反射创建新类示例的两种方式及比较
来源:互联网 发布:2017年中国老龄化数据 编辑:程序博客网 时间:2024/06/05 18:45
通过反射创建新类示例的两种方式及比较
作者BLOG:http://blog.csdn.net/fenglibing
通过反射创建新的类示例,有两种方式:
Class.newInstance()
Constructor.newInstance()
以下对两种调用方式给以比较说明:
l Class.newInstance()只能够调用无参的构造函数,即默认的构造函数;而Constructor.newInstance()可以根据传入的参数,调用任意构造构造函数。
l Class.newInstance()抛出所有由被调用构造函数抛出的异常。
l Class.newInstance()要求被调用的构造函数是可见的,也即必须是public类型的; Constructor.newInstance() 在特定的情况下,可以调用私有的构造函数。
Class A(被调用的示例):
Class B(调用者):
输入结果如下:
通过Class.NewInstance()调用私有构造函数:
通过Class.NewInstance()调用私有构造函数【失败】
通过Constructor.newInstance()调用私有构造函数:
A's constructor is called.
a:5 b:6
说明方法newInstanceByClassNewInstance调用失败,而方法newInstanceByConstructorNewInstance则调用成功。如果被调用的类的构造函数为默认的构造函数,采用Class.newInstance()则是比较好的选择,一句代码就OK;如果是老百姓调用被调用的类带参构造函数、私有构造函数,就需要采用Constractor.newInstance(),两种情况视使用情况而定。不过Java Totorial中推荐采用Constractor.newInstance()。
本文出自:冯立彬的博客
- 通过反射创建新类示例的两种方式及比较
- 通过反射创建新类示例的两种方式及比较
- 通过反射创建新类示例的两种方式及比较
- 利用反射机制创建新类的两种方式及比较
- 线程的两种创建方式及优劣比较
- Java线程的两种创建方式及优劣比较
- 【JAVA多线程】-线程的两种创建方式及比较
- 线程的两种创建方式及比较
- 创建线程两种方式的比较
- 创建线程两种方式的比较
- String类的两种创建方式的比较
- java多线程总结一:线程的两种创建方式及优劣比较
- java多线程总结一:线程的两种创建方式及优劣比较
- java多线程总结一: 线程的两种创建方式及优劣比较
- java多线程总结一: 线程的两种创建方式及优劣比较
- java多线程总结一:线程的两种创建方式及优劣比较
- java多线程总结一:线程的两种创建方式及优劣比较
- java多线程总结一: 线程的两种创建方式及优劣比较
- oracle 创建表空间,用户,授权,导入/导出。。。
- 程序运行时堆区和栈区的分配
- SQL 入门——如何将两个字段拼接为一个字段
- C语言声明学习之初级篇
- Spring 的持久层封装
- 通过反射创建新类示例的两种方式及比较
- oracle占用8080端口的問題.
- sql server 2005/2008 设置 sql身份验证 和 sa空密码(像sql2000一样使用)(转载)
- Oracle字符函数
- ASPNET服务器控件和客户端脚本
- 新的开始
- 常用的正则表达式
- 用代码安装APK程序
- 在 ASP.NET 中执行 URL 重写(RewritePath)