Java反射三 构造方法
来源:互联网 发布:网络销售是正规工作么 编辑:程序博客网 时间:2024/06/05 15:53
Java的世界里,一切皆对象,那构造方法也不例外,也可以用对象来表述.
Constructor 这个类就代表构造方法的抽象
下文使用的MyObject类,源码在第二篇文章
全部的构造方法
Class<MyObject> aClass = MyObject.class;// 全部的构造方法Constructor<?>[] constructors = aClass.getConstructors();for (Constructor<?> constructor : constructors) { logger.debug("构造方法 {}", constructor);}
结果如下,获得了全部的构造方法,自定的2个+默认的1个
构造方法 public com.nextyu.study.reflection.MyObject(java.lang.String,java.lang.Integer)构造方法 public com.nextyu.study.reflection.MyObject(java.lang.String)构造方法 public com.nextyu.study.reflection.MyObject()
指定参数的构造方法
// 获取MyObject如下一个构造方法public MyObject(String name) { this.name = name;}// 指定参数的构造方法// getConstructor方法传入的参数为Class类型的对象,代表的是参数类型// 想获得上面的带一个String参数的构造方法,就需要传入String的Class对象Constructor<MyObject> constructor = aClass.getConstructor(String.class);logger.debug("指定参数的构造方法", constructor);
结果如下
指定参数的构造方法 public com.nextyu.study.reflection.MyObject(java.lang.String)
构造方法参数
// 构造方法参数Class<?>[] parameterTypes = constructor.getParameterTypes();for (Class<?> parameterType : parameterTypes) { logger.debug("构造方法参数 {}", parameterType);}
结果如下
构造方法参数 class java.lang.String
利用Constructor对象实例化一个类
// 利用Constructor对象实例化一个类// 刚才我们获取的是只带一个String参数的构造方法,所以实例化对象,只需传入一个String参数即可MyObject myObject = constructor.newInstance("小明");logger.debug("{}", myObject);
结果如下
MyObject{name='小明', age=null}
源码地址
https://github.com/nextyu/study-source/tree/master/java-reflection
0 0
- Java反射三 构造方法
- Java反射三 构造方法
- java 反射(三) 打印Class的构造、属性、方法
- java 反射访问构造方法
- java 反射使用构造方法
- java 反射获得构造方法
- Java反射获取构造方法
- java 反射 访问构造方法
- Java反射-------构造方法的反射应用
- java进阶(三):反射(1)——构造方法和属性的反射
- java基础--反射(构造方法)
- java反射---获取类的构造方法
- java基础:反射类的构造方法
- Java反射获取属性、方法、构造器
- JAVA 采用反射机制 获取构造方法
- java 反射操作无参构造方法
- java中反射操作构造方法
- Java 反射(构造方法) 相当暴力啊 暴力反射
- 【面向对象】三大特性——封装、继承、多态
- 全排列 【dfs回溯】+【set去重】
- 企业QQ空间xss随意得客户端QQ号码 附(爆破盗号者后台)
- 【提高篇】经典算法——有序表的二分查找
- Java 初始化与清理
- Java反射三 构造方法
- Windows下编译qt-material
- Leetcode-标签为Tree 110. Balanced Binary Tree
- spring mvc 标签,@PathVariable,@cookieValue ,@RequestHeader等
- 面试13之检查链表是否为回文
- Ubuntu 添加删除开机启动项
- sbt版本定义
- 视图
- 20170423STL016_STL_关联容器