博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Reflection(三):构造器
阅读量:6946 次
发布时间:2019-06-27

本文共 1008 字,大约阅读时间需要 3 分钟。

内容索引

利用Java的反射机制你可以检查一个类的构造方法,并且可以在运行期创建一个对象。这些功能都是通过java.lang.reflect.Constructor这个类实现的。本节将深入的阐述Java Constructor对象。

获取Constructor对象

我们可以通过Class对象来获取Constructor类的实例:

Class aClass = ...//获取Class对象  Constructor[] constructors = aClass.getConstructors();

返回的Constructor数组包含每一个声明为公有的(Public)构造方法。

如果你知道你要访问的构造方法的方法参数类型,你可以用下面的方法获取指定的构造方法,这例子返回的构造方法的方法参数为String类型:

Class aClass = ...//获取Class对象  Constructor constructor =        aClass.getConstructor(new Class[]{String.class});

如果没有指定的构造方法能满足匹配的方法参数则会抛出:NoSuchMethodException。

构造方法参数

你可以通过如下方式获取指定构造方法的方法参数信息:

Constructor constructor = ... //获取Constructor对象  Class[] parameterTypes = constructor.getParameterTypes();

利用Constructor对象实例化一个类

你可以通过如下方法实例化一个类:

Constructor constructor = MyObject.class.getConstructor(String.class);  MyObject myObject = (MyObject)         constructor.newInstance("constructor-arg1");

constructor.newInstance()方法的方法参数是一个可变参数列表,但是当你调用构造方法的时候你必须提供精确的参数,即形参与实参必须一一对应。在这个例子中构造方法需要一个String类型的参数,那我们在调用newInstance方法的时候就必须传入一个String类型的参数。

  • 转载自 
你可能感兴趣的文章
java之CountDownLatch看看笔记
查看>>
Implement_strStr --leetcode
查看>>
我的友情链接
查看>>
centos 7设置smtp发送163邮件
查看>>
我的友情链接
查看>>
文件服务器之Branchcache分布式缓存
查看>>
我的友情链接
查看>>
Java设计模式百例 - 抽象工厂模式
查看>>
依赖倒置原则 DIP(Dependence Inversion Principle)
查看>>
智能硬件的简单剖析
查看>>
三种不同的交换机mac端口绑定模式的区别
查看>>
JupyterLab安装地图插件
查看>>
教程:Akismet获取API KEY的方法
查看>>
实现 Ctrl+Enter 快捷发表留言功能
查看>>
Linux内核的Makefile和kconfig解读
查看>>
mysql innodb 下ENUM存储格式分析。
查看>>
基于CentOS 5.6的应用服务器精简定制版出来了,ISO文件下载
查看>>
Yii textField 数据处理
查看>>
git rebase 详细说明
查看>>
让你的Fiddler支持HTTP隧道
查看>>