IT辅导娱乐网| 蜘蛛地图| 所有文章|
Java反射库详解 - IT辅导
  • 首页
  • IT技术 IT辅导资源网设计图
    • DVWA靶场
    • sqli-lab靶场
  • 源码基地
  • 软件分享 IT辅导资源网设计图
    • 辅助软件
  • emlog教程
  • 白嫖活动
  • 网络技巧 IT辅导资源网设计图
    • seo教程
  • 编程教程
  • 值得看一看 IT辅导资源网设计图
    • 值得听一听
    • 读懂世界
    • 活动线报
  • 更多功能 IT辅导资源网设计图
    • 在线投稿
    • 公告动态
    • 广告合作
    • 匿名投稿


登录后,享受更多优质服务哦
IT辅导资源网站长qq头像
欢迎回来,可爱的会员!个人中心退出登录
导航菜单
  • 首页
  • IT技术
    • DVWA靶场
    • sqli-lab靶场
  • 源码基地
  • 软件分享
    • 辅助软件
  • emlog教程
  • 白嫖活动
  • 网络技巧
    • seo教程
  • 编程教程
  • 值得看一看
    • 值得听一听
    • 读懂世界
    • 活动线报
  • 更多功能
    • 在线投稿
    • 公告动态
    • 广告合作
    • 匿名投稿

Java反射库详解

2020/8/20 五年级扛把子 

介绍

    java反射库(reflection library) 提供了一个非常丰富且精心设计的工具集, 以便编写能够动 态操纵 Java 代码的程序。这项功能被大量地应用于 JavaBeans 中。使用反射, Java 可以支持 Visual Basic 用户习惯 使用的工具,特别是在设计或运行中添加新类时, 能够快速地应用开发工具动态地查询新添加类的能力。 

反射的作用

    1.在运行时分析类的能力;

    2.在运行时查看对象;

    3.实现通用的数组操作代码;

    4.利用 Method 对象, 这个对象很像中的函数指针。

Java反射中常用技术

  1.动态获取类,例如:根据一个字符串获取该类

 String name="xxxxxxxxxxxx";
 Class c1 = name.getClass();
System.out.println(c1.getName());

运行结果如下:


2.动态验证类是否存在与合法性,例如:比如上面获取的java.lang.String类名 

String name = "java.lang.String";
Class c1 = null;
try {
   c1 = Class.forName(name);
   System.out.println(c1.getName());
} catch (ClassNotFoundException e) {
}

运行结果如下:


注:我们也可以通过c1.getSuperclass()获取到它的父类

3.获取类的成员

    3.1.属性

        a. 获取所有成员变量

            getDeclaredFields 

        b. 获取特定的成员变量

            getDeclaredField(参数类型.class,....) 

    3.2.方法

            a.获取所有方法

                  getDeclareMethods()

          b.获取方法的返回值类型

                  getReturnType()

          c. 获取方法的传入参数类型

                  getParameterTypes();

           d.获取指定的方法

                  getDeclareMethod("方法名,参数类型.class,....")

    3.3.构造器

          a. 获取所有构造器

                public Constructor[] getConstructors()

                public Constructor[] getDeclaredConstructors()

           b.获取单个指定构造器

                 public Constructor getConstructor(Class... parameterTypes)

                 public Constructor getDeclaredConstructor(Class... parameterTypes)

    4.调用构造器

        newInstance 方法,例如:调用Test类的构造器

        Test带参数的构造器

public Test(int age , String name){
   this.age = age;
   his.name = name;
   System.out.println("hello" + name + "i am" + age);
}

    使用newInstance方法调用构造器

Class[] p = {int.class,String.class};
constructors = c4.getDeclaredConstructor(p);
constructors.newInstance(24,"HuangLinqing");

打印结果如下图:


总结

    本文主要罗列了Java反射中使用比较多的一些方法,主要都是来自 java.lang.reflect包下的Field、Method 和 Constructor 等三个类,希望对大家有帮助!!

相关文章:java反射机制-高级特性详解

 点赞:0  打赏  分享  海报

  • 打赏支付宝扫一扫
  • 打赏微信扫一扫
  • 打赏企鹅扫一扫
结束语
温馨提醒:如有技术问题以及资源失效请联系站长 QQ89549822 进行反馈!!!
 您阅读本文耗时: 0小时02分35秒
热度:334° 发布时间:2020年8月20日

推荐:

标题:Java反射库详解

链接: https://www.itfd.cn/post-1082.html

版权:转载请注明来源于【IT辅导娱乐网】为原创

上一篇: jdk安装教程(解压版安装详解)

下一篇: web前端开发面试题

作者头像 作者名称 作者性别
五年级扛把子
联系作者 作者主页

热门推荐

1 Java面试题锦集
2 唐小僧800亿规模网贷平台爆雷
3 spring IOC和AOP概述
4 印度起跑线超清资源 豆瓣8.1分
5 项目实际应用中分布式锁介绍
6 第十一届蓝桥杯校内模拟赛题解

评论列表

取消回复

  • 存档

    • 2020年9月(191)
    • 2020年8月(92)
    • 2020年7月(5)
    • 2020年6月(224)
    • 2020年5月(392)
    • 2020年4月(267)
    • 2020年3月(76)
    • 2019年3月(1)
    • 1970年1月(29)
  • 搜索

  • 热门文章

    • 神佑之路手游源码-附视频教程
    • 最新可用老王VPN2.22.15谷歌市场版,免费使用
    • 私藏的十个网站,不看后悔系列
    • 虚拟商品自动发货商城源码
    • 不吃苦、不奋斗,你要青春做什么?
  • 随机文章

        • Java线程的声明周期详解
          • IntelliJ IDEA 2019之Tomcat配置和项目部署
              • Electron+Vue搭建跨平台桌面应用
    提示信息

    SQL语句执行错误: SELECT COUNT(*) AS total FROM emlog_twitter
    Table 'itfd.emlog_twitter' doesn't exist

    «点击返回