Java Reflection(三):构造器

简介:

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)
内容索引
获取Constructor对象
构造方法参数
利用Constructor对象实例化一个类

利用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
【反射】Java反射机制 -- 常用构造器与方法
【反射】Java反射机制 -- 常用构造器与方法
224 0
|
10月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
安全 Java API
Java反射(Reflection)的技术性文章
Java反射(Reflection)的技术性文章
187 1
|
设计模式 算法 Java
【设计模式】JAVA Design Patterns——Builder(构造器模式)
【设计模式】JAVA Design Patterns——Builder(构造器模式)
|
Oracle Java 关系型数据库
【颠覆性升级】JDK 22:超级构造器与区域锁,重塑Java编程的两大基石!
【9月更文挑战第6天】JDK 22的发布标志着Java编程语言在性能和灵活性方面迈出了重要的一步。超级构造器和区域锁这两大基石的引入,不仅简化了代码设计,提高了开发效率,还优化了垃圾收集器的性能,降低了应用延迟。这些改进不仅展示了Oracle在Java生态系统中的持续改进和创新精神,也为广大Java开发者提供了更多的可能性和便利。我们有理由相信,在未来的Java编程中,这些新特性将发挥越来越重要的作用,推动Java技术不断向前发展。
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
【JAVA学习之路 | 基础篇】Java构造器(构造方法)
【JAVA学习之路 | 基础篇】Java构造器(构造方法)
|
安全 NoSQL Java
探索Java Optional类:构造器、成员变量与方法
探索Java Optional类:构造器、成员变量与方法
176 0
什么是Java中的反射(Reflection),如何使用它
什么是Java中的反射(Reflection),如何使用它
|
Java
Java提供了四种访问修饰符来控制类、变量、方法和构造器的访问级别
Java提供了四种访问修饰符来控制类、变量、方法和构造器的访问级别
322 1