java学习笔记之反射

author author     2022-07-30     274

关键词:

鲁春利的工作笔记,谁说程序员不能有文艺范?



Java程序在运行期间可以动态加载、解析和使用一些在编译阶段并不确定的类型,这一机制被称为反射(Reflection)或自省(Introspection)。Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。这种“看透class”的能力(the ability of the program toexamine itself)被称为introspection(内省、内观、反省)。Reflection和introspection是常被并提的两个术语。


Class类是Reflection API 中的核心类。在类加载时,java虚拟机会自动创建相应的Class对象。

在java.lang.Object 类中定义了getClass()方法,因此对于任意一个Java对象,都可以通过此方法获得对象的类。
Class类的实例用于表示运行时的java数据类型,包括类、接口、数组、枚举、注解、基本数据类型甚至void等。

使用 Reflection 步骤总结:

一、获得你想操作的类的 java.lang.Class 对象

获得Class对象:

  • 针对引用数据类型:

调用静态方法:Class.forName();

Class.forName("p1.Person");
Class.forName("com.mysql.jdbc.Driver");

调用Object类中定义的getClass()方法

Person person = new Person();
Class  cs = p.getClass();
Class  strClass = "Hello World".getClass()

使用.class表达式

Class  strClass = String.class;
Class  personClass = p1.Person.class;
Class  jdbcClass = com.mysql.jdbc.Driver.class;
  • 针对基本数据类型及void

使用.class表达式

Class  intClass = int.class;
Class  dobClass = double.class;
Class  voidClass = void.class;

调用相应封装类的Type属性

Class IntegerClass = Integer.TYPE;
Class voicClass = Void.TYPE;

二、取得类的成员信息

调用例如 getDeclaredMethods 等方法

技术分享

三、使用 Reflection API 来操作类的成员信息

在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中。

技术分享


本文出自 “闷葫芦的世界” 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1794856

java学习笔记-反射机制

1. JAVA反射机制的概念 2.怎样实例化一个Class对象    Class.forName(包名.类名);  对象.getClass();  类.class;  ============================代码========================== 查看详情

unityshaders学习笔记之为创建自定义慢反射光照模型(代码片段)

一、简介 Lambert的光照模型是一个很经典的漫反射模型,光强与入射光的方向和反射点处表面法向夹角的余弦成正比。简单解释就是一个点的反射光强是和该点的法线向量和入射光向量和强度和夹角有关系的,其结果就... 查看详情

java反射基础笔记

...发现自己的基础知识掌握的并不是很牢固,遇到的问题与学习的东西也没有很好的做过记录,导致再遇到时耗费大量时间上网搜索,所以决定串下基础知识并尽量形成记录,方便自己之后遗忘时查询,也方便各位有需求的伙伴翻... 查看详情

unityshaders学习笔记之为创建halflambert光照模型(代码片段)

...、如何操作  我们继续使用上一节的代码【UnityShaders】学习笔记之为创建自定义慢反射光照模型(五),通过以下步骤进行计算:  1.将漫反射计算结果乘以0 查看详情

java高级学习篇之反射

(一)什么是反射?     反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够获取这个类的所有属性和方法;对于任意一个对象,都能调用其任意一个方法和属性。... 查看详情

java学习注解和反射超详细笔记(代码片段)

目录一、注解1、注解入门2、内置注解3、自定义注解,元注解二、反射机制1、Java反射机制概念1.1静态&动态语言1.2反射机制概念1.3反射机制研究与应用1.4反射机制优缺点1.5实现2、理解Class类并获取Class实例2.1class类介绍2.2获取Cla... 查看详情

goasm学习笔记之ppt版

...觉得有点虚,于是抱着死啃这块大骨头的心态开始了汇编学习之路。要知道,作为一个严肃的Gopher,汇编是绕不开的。本着输出倒逼输入的原则在学习之后开始整理材料,发现材料不好写,主要原因是汇编太多太杂, 查看详情

学习笔记之xss原理篇

什么是xss  XSS又叫CSS(CrossSiteScript),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。XSS属于被动式的攻击,因为其... 查看详情

学习大数据:java基础篇之反射

反射使用反射获取程序运行时的对象和类的真实信息。获取Class对象每个类被加载之后,系统会为该类生成一个对应的Class对象,通过该Class对象可以访问到JVM中的这个类。使用Class类的forName(StringclazzName)静态方法。字符串参数的... 查看详情

java讲课笔记36:初探反射机制

文章目录零、本讲学习目标一、认识反射(一)Java反射机制(二)Java反射的动态性质(三)如何理解Java反射的原理(四)利用反射可实现的功能二、Java反射常用API三、使用反射的基本步骤四、利用反射获取类的信息(一)获... 查看详情

学习spring之前必学之反射技术

引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”。以下几项Java知识和Spring框架息息相关,不可不学   Java语言允许通过程序化的方式间接对Class进行操作,Class... 查看详情

javaweb学习笔记11_xml&反射

解析XML总结(SAX、Pull、Dom三种方式)反射的简单介绍:反射1、什么是反射技术?动态获取指定类以及类中的内容(成员),并运行其内容。应用程序已经运行,无法在其中进行new对象的建立,就无法使用对象。这时可以根据配置... 查看详情

java反射机制学习:初始反射机制

  本人小白一枚,想和大家一起分享我学习java的笔记和心得。 反射机制: 指的是可以于运行时加载、探知、使用编译期间完全未知的类。 程序在运行状态中,可以动态加载一个只有名称的类,对于任意一个已加载的类,... 查看详情

java新手入门200例121之通过java反射创建类对象

...发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 查看详情

java学习笔记之方法重载

被重载的方法必须具有不同的参数列表.不能基于不同修饰符或返回值类型来重载方法. packagewelcome;publicclassTestMethodOverloading{publicstaticvoidmain(String[]args){System.out.println("Themaximumbetween3and4is"+max(3,4));//调用max(int,int) 查看详情

狂神说java学习笔记12:java流程控制之for循环

【狂神说Java】学习笔记12:Java流程控制之for循环[01] For循环[02] 增强for循环[03] Break和Continue[04] 实例:打印三角形--------------------------------------------------------------------[01] For循环练习1.计算0-100之间的奇数和偶数之和练习2.用while或fo... 查看详情

java新手入门200例116之java反射访问构造方法

...发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 查看详情

java新手入门200例118之java通过反射访问成员变量

...发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 查看详情