Java语法学习反射

Java语法学习反射

大纲

  1. 基本介绍
  2. class的介绍

具体案例

1. 基本介绍

在这里插入图片描述
流程图(程序在计算机的阶段)
在这里插入图片描述

反射的主要的类
在这里插入图片描述
在这里插入图片描述
这个提高效率不大

2. class的介绍

在这里插入图片描述
对于第三点:首先类只会加载一次,得到的class的对象,也只有一个,如果用反射两次得到class的对象,只是名字不同,地址本质上还是一个

常用方法

在这里插入图片描述

 public static void main(String[] args) {String classPath = "reflection.Cat";try {Class<?> aClass = Class.forName(classPath);System.out.println(aClass);//获取这个对象是哪一个类System.out.println(aClass.getClass());//获取运行对象System.out.println(aClass.getPackage().getName());//获取包名System.out.println(aClass.getName());//得到全路径Object obj = aClass.newInstance();//得到对象//进行强转Cat cat = (Cat) obj;System.out.println(cat);Field name = aClass.getField("name");//获取成员(这个是公有)System.out.println(name.get(cat));//获取指定对象的这个属性//通过反射给指定对象属性赋值,遵守访问权限name.set(cat,"花花");System.out.println(name.get(cat));//得到成员的集合,再遍历Field[] fields = aClass.getFields();for (Field field : fields) {System.out.println(field.getName());}//得到构造器Constructor<?> constructor = aClass.getConstructor(int.class,String.class);System.out.println(constructor);} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchFieldException |NoSuchMethodException e) {throw new RuntimeException(e);}}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) throws ClassNotFoundException {String classPath = "reflection.Cat";//第一种:通过forName获取Class<?> aClass1 = Class.forName(classPath);//第二种:直接获取Class<Cat> aClass2 = Cat.class;//第三种:创建对象后,利用对象获取Cat cat = new Cat();Class<? extends Cat> aClass3 = cat.getClass();//第四种:通过类的加载器来获取ClassLoader classLoader = cat.getClass().getClassLoader();Class<?> aClass4 = classLoader.loadClass(classPath);}

拥有class对象的类

在这里插入图片描述

类加载

在这里插入图片描述
反射是动态加载,在使用时,只有运行执行到这段代码才会进行校验,
其它的静态加载,在编译的时候就会进行校验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466848.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google Cloud 2024 年报告重点介绍了关键的网络威胁和防御

Google Cloud 的 2024 年威胁范围报告预测了云安全的主要风险&#xff0c;并提出了加强防御的策略。 该报告由 Google 安全专家撰写&#xff0c;为寻求预测和应对不断变化的网络安全威胁的云客户提供了宝贵的资源。 该报告强调&#xff0c;凭证滥用、加密货币挖矿、勒索软件和…

【51单片机】串口(江科大)

8.1串口通信 1.串口介绍 2.硬件电路 3.电平标准 电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种: 电平标准是数据1和数据O的表达方式,是传输线缆中人为规定的电 压与数据的对应关系,串口常用的电平标准有如下…

vue3-内置组件-Suspense

Suspense (实验性功能) <Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化。 <Suspense> 是一个内置组件&#xff0c;用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌…

在计算机/移动设备上恢复已删除视频的 10 个数据恢复工具

视频在网上疯传&#xff0c;我们都观看或创建视频&#xff0c;并将我们最喜欢的视频保存在硬盘上。如果我们丢失了一些重要的视频&#xff0c;那将是非常令人心碎的。但是今天&#xff0c;恢复已删除的视频变得更加容易。删除的视频在被新数据覆盖之前并没有真正从您的存储驱动…

apk反编译修改教程系列---简单修改apk默认横竖屏显示 手机端与电脑端同步演示【十一】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…

Javaweb前端基础

1 &#xff0c;表格标签 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>HTML-表…

使用R语言建立回归模型并分割训练集和测试集

通过简单的回归实例&#xff0c;可以说明数据分割为训练集和测试集的必要性。以下先建立示例数据: set.seed(123) #设置随机种子 x <- rnorm(100, 2, 1) # 生成100个正态分布的随机数&#xff0c;均值为2&#xff0c;标准差为1 y exp(x) rnorm(5, 0, 2) # 生成一个新的变…

three.js 细一万倍教程 从入门到精通(一)

目录 一、three.js开发环境搭建 1.1、使用parcel搭建开发环境 1.2、使用three.js渲染第一个场景和物体 1.3、轨道控制器查看物体 二、three.js辅助设置 2.1、添加坐标轴辅助器 2.2、设置物体移动 2.3、物体的缩放与旋转 缩放 旋转 2.4、应用requestAnimationFrame …

电动汽车上哪些部位用到了电机?

一、背景 电动汽车中除了主驱动电机之外的其他电机的控制复杂度因电机的种类和功能而异。 一般来说&#xff0c;助力转向电机、空调风扇电机、冷却水泵电机等辅助电机的控制相对较为简单。这些电机通常只需要进行简单的开/关控制或速度调节&#xff0c;以满足车辆的基本需求。…

docker本地目录挂载

小命令 1、查看容器详情 docker inspect 容器名称 还是以nginx为例&#xff0c;上篇文章我们制作了nginx静态目录的数据卷&#xff0c;此时查看nginx容器时会展示出来&#xff08;docker inspect nginx 展示信息太多&#xff0c;这里只截图数据卷挂载信息&#xff09;&#…

「数据结构」二叉搜索树1:实现BST

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;Java数据结构 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 实现BST &#x1f349;二叉搜索树的性质&#x1f349;实现二叉搜索树&#x1f34c;插入&#x1f34c;查找&#x1f34c;删除 &am…

中国电子学会2019年3月份青少年软件编程Scratch图形化等级考试试卷三级真题(选择题、判断题)

一、单选题(共 25 题&#xff0c;每题 2 分&#xff0c;共 50 分) 1. 要使以下代码运行后画出如图所示三角形风车,则以下代码中①②③④处应分别填入多少?( ) A.3 4 90 120 B.4 3 90 120 C.3 4 120 90 D.4 3 120 90 2.运行下列脚本&#xff0c;i的值为&#xff08; &am…