JAVA反射机制

1定义:

主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。

反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!

2.作用

A:反编译:.class-->.java

B:通过反射机制访问java对象的属性,方法,构造方法等;

这样好像更容易理解一些,下边我们具体看怎么实现这些功能。

3.获取Class对象有三种方式:

(1)..通过Object类的getClass()方法。例如:

Class c1 = new String("").getClass();

(2).通过Class类的静态方法——forName()来实现:

Class c2 = Class.forName("MyObject");

(3).如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了 与其匹配的Class对象,例如:

Class c3 = Manager.class;

Class c4 = int.class;

Class c5 = Double[].class;

4.Class类中存在以下几个重要的方法:

a.getName()

一个Class对象描述了一个特定类的特定属性,而这个方法就是返回String形式的该类 的简要描述。由于历史原因,对数组的Class对象

调用该方法会产生奇怪的结果。

b.newInstance()

该方法可以根据某个Class对象产生其对应类的实例。需要强调的是,它调用的是此类 的默认构造方法。例如:

MyObject x = new MyObject();

MyObject y = x.getClass().newInstance();

c.getClassLoader()

返回该Class对象对应的类的类加载器。

d.getComponentType()

该方法针对数组对象的Class对象,可以得到该数组的组成元素所对应对象的Class对 象。例如:

int[] ints = new int[]{1,2,3};

Class class1 = ints.getClass();

Class class2 = class1.getComponentType();

而这里得到的class2对象所对应的就应该是int这个基本类型的Class对象。

e.getSuperClass()

返回某子类所对应的直接父类所对应的Class对象。

f.isArray()

判定此Class对象所对应的是否是一个数组对象。

java反射菜鸟教程_Java反射相关推荐

  1. 视频教程-手写Java框架系列教程之一反射(含配套资料)-Java

    手写Java框架系列教程之一反射(含配套资料) 张长志技术全才.擅长领域:区块链.大数据.Java等.10余年软件研发及企业培训经验,曾为多家大型企业提供企业内训如中石化,中国联通,中国移动等知名企业 ...

  2. java反射教程_Java反射教程

    java反射教程 在本教程中,我主要编写一些示例来介绍Java反射可以做什么. 希望它可以给您这个概念的概述. 请留下您的评论以寻求建议. 什么是反射? 简而言之,反射是程序在运行时检查和修改对象的结 ...

  3. java反射用法示例_Java反射示例教程

    java反射用法示例 Java Reflection provides ability to inspect and modify the runtime behavior of applicatio ...

  4. java反射随意值_Java反射总结

    能够分析类能力的程序称为反射.对于给定的Java类名,可以通过反射获取类的信息.将类的各成分映射出相应的Java类. Class类 在程序运行期间,Java运行时系统始终对所有的对象维护一个被称为运行 ...

  5. java反射 数组类型_Java反射-数组

    通过反射使用数组有时会比较棘手.特别是需要获得一个特定类型数组的Class对象,如int[]等.本文将讨论如何通过反射创建数组和获得他们的Class对象. 注意:本文在阅读Eyal Lupu的博客&q ...

  6. java反射源码_java反射技术详解附源码

    在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...

  7. java反射创建实例_Java反射创建实例

    Java反射创建实例 package com.wkcto.chapter08.demo02; import java.lang.reflect.Constructor; import java.lan ...

  8. java反射最佳实践_Java 反射最佳实践 – 码农网

    标签: 概要:最简单优雅的使用反射. 本文的例子都可以在示例代码中看到并下载,如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request.本文的示例代码主要 ...

  9. java 反射 工厂模式_Java反射机制demo(七)—反射机制与工厂模式

    Java反射机制demo(七)-反射机制与工厂模式 工厂模式 简介 工厂模式是最常用的实例化对象模式. 工厂模式的主要作用就是使用工厂方法代替new操作. 为什么要使用工厂模式?直接new不好吗? 直 ...

最新文章

  1. java debugtrace_Debug与Trace的区别
  2. linux串口工具 SRT,汇编语言实现串口通信(PC和单片机间).doc
  3. 【注释规约】规范化的第一步,你类和方法的注释,规范嘛?
  4. 2014款新宝来车引擎盖开关在哪里
  5. 【数据结构与算法】之深入解析“合并两个有序链表”的求解思路与算法示例
  6. ionic3 自动创建启动背景splash以及图标icon
  7. 再读TCP/IP网络7层协议
  8. 前端学习(1328):服务器基础概念
  9. linux命令之grep 命令
  10. 使 JavaScript 更加简洁的小技巧
  11. java subset_Java中的TreeSet的subSet()方法 Java.util.TreeSet.subSet() - Break易站
  12. Mac10.12开启NTFS读写
  13. idea 包.路径切换为目录结构
  14. 数据结构:最小生成树
  15. Google Maps API 中的标注编程
  16. windows录屏_工具推荐:这些录屏软件既免费又好用
  17. linux u盘 修复工具,在Linux终端中修复U盘驱动器问题
  18. MSDN我告诉你在线hash验证服务
  19. elasticsearch 使用词干提取器处理英语语言
  20. 【论文笔记】Weakly Supervised Discriminative Feature Learning with State Information for Person ...

热门文章

  1. java计算机毕业设计校园爱心志愿系统源代码+数据库+系统+lw文档
  2. Python 字典的基本操作
  3. pfSense流量限速
  4. 【AI科幻】地球陨落 · 初始
  5. win10系统突然无法联网解决方案
  6. 数据仓库是什么?它有什么用?一文带你全了解
  7. ajax 302 错误无法跳转
  8. java时间类型处理manman
  9. 华为老员工:为何我二十年专心做技术,不转岗做领导?
  10. Android Studio 4.1不报红