前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java反射05-Constructor对象

java反射05-Constructor对象

作者头像
潇洒
发布2023-10-20 09:52:55
850
发布2023-10-20 09:52:55
举报
文章被收录于专栏:石头岛石头岛

前言

Constructor 对象,就是字面意思,就是一个构造器对象。可以通过它构建对象。

有构造器就能创建对象。 构造器对象,用来获取当前反射类的构造器。

主要方法:

  1. getDeclaredConstructor:根据方法签名,获取构造器,可返回 private public 等。
  2. getConstructor: 只能返回 public 的构造器

反射获得 Constractor

这里是创建一个对象,不包括调用。

代码语言:javascript
复制
public void test() {
  Class cls = Class.forName("com.liukai.Person");
  //获取指定的对象(公共的)
  Constructor constructor = cls.getConstructor();
  // 创建一个对象
  Object p = constructor.newInstance();
}

再举个例子,通过getDeclaredConstructor获取指定方法签名的构造器。 方法:Constructor.getDeclaredConstructor()

代码语言:javascript
复制
public void test() { 
  Class cls = Class.forName("com.liukai.Person");
  // Person (String str, int number) 的构造器
  Constructor constructor2 = cls.getDeclaredConstructor(String.class, int.class);
  // 可以转转
  Person o = (Person) constructor2.newInstance("String", 1234);
  System.out.println(o.age);
}

还有比如可以使用String的Constructor来构建一个对象。

代码语言:javascript
复制
String.class.getConstructor(String.class).newInstance("Hello");

总结

通过构造器对象Constructor,可以更加抽象的实例化对象,不需要明确的指定特定类型进行实例化,这样在底层框架层面就可以更加灵活,String实例化对象的操作中就有大量这样的操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 反射获得 Constractor
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档