【Java基础】反射机制
反射
反射可以使我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码链接。反射允许我们在编写和执行时,使我们的代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码。
反射机制作用
- 反编译:.class -> .java
- 通过反射机制访问Java对象的属性,方法,构造方法
反射的使用
- 反射机制获取类的三种方式
Class c1 = Class.forName("com.webb.basis.reflect.Demo"); // 一般采用这种方式
Class c2 = Demo.class;
Class c3 = new Demo().getClass();
- 创建对象:获取类之后我们来创建它的对象,利用newInstance()
c1.newInstance(); // 调用了Demo的无参构造方法
- 获取属性
// 获取所有属性
Field[] fields = c1.getDeclaredFields(); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(Modifier.toString(c1.getModifiers()) + " class " + c1.getSimpleName() + "{\n"); for (Field field : fields) {
stringBuffer.append("\t");
stringBuffer.append(Modifier.toString(field.getModifiers()) + " ");
stringBuffer.append(field.getType().getSimpleName() + " ");
stringBuffer.append(field.getName() + ";\n");
} stringBuffer.append("}"); System.out.println(stringBuffer); // 获取指定的属性
Field field = c1.getDeclaredField("name"); // 不存在的话会报错
- 获取方法和构造方法
方法关键字
getDeclaredMethods()
getReturnType()
getParameterTypes()
getDeclaredMethod() 构造方法关键字
getDeclaredConstructors()
getDeclaredConstructor()
- setAccessible(true);
对属性设置访问权限,当类中的变量为private时,必须设置此项。
【Java基础】反射机制的更多相关文章
- JAVA基础-反射机制
什么是JAVA的反射机制 Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其 ...
- java基础——反射机制
反射机制是什么 反射机制就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...
- Java基础--反射机制的知识点梳理
什么是反射? 正常编译执行java文件时,会生成一个.class文件,反射就是一个反编译的过程,它可以通过.class文件得到一个java对象.一个类会有很多组成部分,比如成员变量,成员方法,构造方法 ...
- java笔记--反射机制之基础总结与详解
一.反射之实例化Class类的5种方式: java的数据类型可以分为两类,即引用类型和原始类型(即基本数据类型). 对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象 ...
- Java 类反射机制分析
Java 类反射机制分析 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某 ...
- java的反射机制
一.java的反射机制浅谈 最近研究java研究得很给力,主要以看博文为学习方式.以下是我对java的反射机制所产生的一些感悟,希望各位童鞋看到失误之处不吝指出.受到各位指教之处,如若让小生好好感动, ...
- Java基础-类加载机制与自定义类Java类加载器(ClassLoader)
Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...
- Java基础-反射(reflect)技术详解
Java基础-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类加载器 1>.JVM 类加载机制 如下图所示,JVM类加载机制分为五个部分 ...
- java的反射机制浅谈(转)
原文链接:java的反射机制浅谈 一.java的反射机制浅谈 1.何谓反射机制 根据网文,java中的反射机制可以如此定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性 ...
- 深入浅出学习hibernate框架(三):java的反射机制
上篇博客写到了JDBC的基本操作,今天准备写一篇关于JAVA反射机制的文章,因为java的反射机制和上一篇JDBC都是Hibernate框架的基本要素.在Hibernate的运行机制中,这两块的内容正 ...
随机推荐
- java语法:字符串数组的赋值
字符串数组怎么赋值呢? 首先当然得先定义啦:String infoPack[] : 然后想当然的以为在for循环里,new一个数组, String infoPack[i] = imgurls; 事实证 ...
- java和Ajax
原博(实在太啰嗦了):https://netbeans.org/kb/docs/web/ajax-quickstart_zh_CN.html 1.Ajax的基本原理 Ajax 代表异步 JavaScr ...
- eclipse中集成svn maven开发手册---maven编译打包
使用eclipse中maven进行打包. 打好的包在相应的workspace下面会有一个release的文件夹,如图
- WDA 程序文本翻译OTR
1.针对直接使用表字段,数据元素的情况: 1.1修改数据元素对应的语言值:DD04T. 1.2模拟SE63插入翻译条目:LXE_LOG 1.3运行时文件翻译条目:DDFTX *&------- ...
- iPhone的刷机 iPhone进UDF
首先是进入udf出现问题.. 要点是 黑屏后按电源键到屏幕亮了+HOME键再一直按 按到黑屏 4秒左右后 放开HOME键 再按大概7秒就是udf界面了 不是界面~全黑的.你可以电源键是开不了机的. 然 ...
- Python3基础 global关键字 使函数的局部变量升格为全局变量
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- zepto.js swipe实现触屏tab菜单
今天我们来说下zepto.js,有兴趣的朋友可以先进这个网站“http://zeptojs.com/” ,这个可以说是手机里的jquery,但是它取消了hover,加上了swipe及tap这两个触屏功 ...
- jQuery插件placeholder的使用方法
借助该插件可以轻松实现HTML5中placeholder特效: 实例代码如下: <script type="text/javascript" src="<%= ...
- iOS 程序初始一个带导航栏的视图
@synthesize window = _window; @synthesize rootViewController = _rootViewController; - (BOOL)applicat ...
- animate动画被锁在队列中不动怎么解决
[示例]: function scroll_to(obj){ $('html,body').animate({scrollTop:obj.position().top},700) ...