反射机制-体会反射的动态性案例(尚硅谷Java学习笔记)

news2024/11/19 12:34:26

// 举例01
public class Reflect{

// 静态性
public Person getInstance(){
  	return new Person();
}

// 动态性
public T<T> getInstance(String className) throws Exception{

  	Calss clzz = Class.forName(className);
  	Constructor con = class.getDeclaredConstructor();
  	con.setAccessible(true);

  	return (T)con.newInstance();
}

// 动态性
public Object invoke(String className,String methodName) throws Exception{

  	// 1.创建全类名对应的运行时类的对象
  	Calss clzz = Class.forName(className);
  	Constructor con = class.getDeclaredConstructor();
  	con.setAccessible(true);
  	Object obj = con.newInstance();

  	// 2.获取运行时类中指定的方法,并调用
    Method method = clazz.getDeclaredMethod(methodName);
  	method.setAccessible(true);
  	return method.invoke(obj);
}

}

案例:榨汁机榨水果汁,水果分别有果(com.reflect.Apple)、香蕉(Banana)、桔子(Orange)等。
效果如图。
提示:
1、声明(Fruit)水果接口,包含榨汁抽象方法: void squeeze(); /skwi:z/
2、声明榨汁机(Juicer),包含运行方法: public void run(Fruit f),方法体中,调用f的榨汁方法squeeze()
3、声明各种水果类,实现水果接口,并重写squeeze();
4、在src下,建立配置文件: config.properties,并在配置文件中配上fruitName=xXx(其中xx为某种水果的全类名)
5、在FruitTest测试类中,
(1)读取配置文件,获取水果类名,并用反射创建水果对象,
(2)创建榨汁机对象,并调用run()方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何赋能音频行业更多创新 荔枝集团邀请华为云专家共探AIGC新动向

在互联网新时代&#xff0c;随着AIGC和大语言模型的技术突破&#xff0c;为音频产品提供了更多创新的可能性。8月25日下午&#xff0c;一场有关AIGC的技术交流论坛在位于广州的荔枝集团总部召开&#xff0c;并邀请华为云AI领域技术专家进行分享。华为云AIGC首席架构师&#xff…

网深科技与中科方德完成兼容性认证

网深科技的产品NetInside可观测性分析平台与国产中科方德主流操作系统完成兼容性适配&#xff0c;系统名称&#xff1a;方德高可信服务器操作系统V4.0&#xff0c;系统运行稳定&#xff0c;性能卓越&#xff0c;完美兼容&#xff0c;能够为广大用户提供灵活、专业、直观可视性&…

centos下配置SFTP且限制用户访问目录

一、SFTP使用场景 ftp是大多数网站的文件传输选择工具&#xff0c;但ftp并不是非常安全&#xff0c;并且在centos上搭建的vsftpd也非常的不稳定&#xff0c;偶尔会出现权限问题&#xff0c;例如500、或是账号密码不正确等等。 而SFTP是基于默认的22端口&#xff0c;是ssh内含…

23款奔驰GLS450升级原厂电动吸合门,体验绅士的关门状态

电吸门的工作原理是在门框(或门板边缘)上安装一个电磁线圈。当门打开时&#xff0c;电流会流过线圈&#xff0c;形成电磁场。这样&#xff0c;由于磁力的作用&#xff0c;当门靠近门框关闭时&#xff0c;门会自动关闭。 另外&#xff0c;电吸门也有有用的一面。如果下车&#…

生成地图展示【Python思路】

# 1.导包 import json from pyecharts.charts import Map #导入关于编写地图的包 from pyechart.options import * #全局设置# 2.得到地图对象 map Map()# 3.打开事先准备好的JSON数据文件 f open("D:/Typora 记事本/notebook/Python/Exercise_data/疫情.txt",&…

江西武功山旅游攻略(周末两日游)

一、 往返路线 1: 出发路线 周五晚上上海出发坐火车&#x1f684;到江西萍乡(11.5小时,卧铺550左右) 打车到江西武功山景区,120-150元左右,人均30元,1小时10分左右到达 或者 &#x1f697;到达萍乡北之后 出站后步行200米到长途汽车站&#xff0c;乘旅游巴士直达武功山游…

Centos 7.6 安装mongodb

以下是在CentOS 7.6上安装MongoDB的步骤&#xff1a; 打开终端并以root用户身份登录系统。 创建一个新的MongoDB存储库文件 /etc/yum.repos.d/mongodb-org-4.4.repo 并编辑它。 sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo在编辑器中&#xff0c;添加下面的内容到文件中并…

GB28181开发------录像查询(设备视音频文件检索)

文件检索主要用区域、设备、录像时间段、录像地点、录像内容为条件进行查询,用 Message消息发 送检索请求和返回查询结果,传送结果的 Message消息可以发送多条,应支持附录 N 多响应消息传输 的要求。文件检索请求和应答命令采用 MANSCDP协议格式定义,详细描述见 A.2.4文件目录检…

Airbnb在中国不得势的主要原因是什么?Airbnb还有可能回来吗?

其实在年轻人的群体中,Airbnb还是相当出名的。想当初一开始出现的时候,很多人都为之疯狂,也在Airbnb上直接创下了众多房源输出,并且订单数量激增的地步。但是到了2021年,Airbnb却是以悄无声息的方式推出了中国市场,几乎没有什么通告,最终很多的用户都是在想要下载更新的时候才发…

springcloud3 GateWay章节-Nacos+gateway(跨域,filter过滤等)

一 常用工具类 1.1 结构 1.2 跨域 Configuration public class CorsConfig {Beanpublic CorsWebFilter corsFilter() {CorsConfiguration config new CorsConfiguration();config.addAllowedMethod("*");config.addAllowedOrigin("*");config.addAllowe…

Django(6)-django项目自动化测试

Django 应用的测试应该写在应用的 tests.py 文件里。测试系统会自动的在所有以 tests 开头的文件里寻找并执行测试代码。 我们的 polls 应用现在有一个小 bug 需要被修复&#xff1a;我们的要求是如果 Question 是在一天之内发布的&#xff0c; Question.was_published_recentl…

手把手叫你用VS2019写个WebApi(可以供网页、手机、电脑三端连接使用)从网页访问后端并在后端通过EF获取sqlserver中的数据

先新建项目&#xff0c;选择ASP.NET Web应用程序(.NET Framework) 创建完成后直接运行会在代码的Scripts.Render("~/bundles/modernizr")处报错&#xff0c;如下图 解决方法&#xff1a; 然后可以正常运行&#xff0c;运行后界面如下&#xff1a; 然后你在网址栏中输…

C语言基础之——数组

前言&#xff1a;本篇文章&#xff0c;我们将对一维数组&#xff0c;和二维数组进行展开式的讲解&#xff0c;并进行实际应用。 目录 一.一维数组 1.一维数组的创建和初始化 &#xff08;1&#xff09;数组的创建 &#xff08;2&#xff09;数组的初始化 2.一维数组的使用…

全行业线上商城系统一体化平台,个性化设计-免费更新-亿发

移动互联网成为了现代人生活中不可或缺的一部分。人们已经习惯了通过手机应用完成日常任务&#xff0c;从购物到社交&#xff0c;都能在手指间直接搞定。 随着小程序的兴起&#xff0c;2023年的线上商城系统在不断发展的数字化环境中&#xff0c;如今&#xff0c;线上商城正以…

行业报告 | 2023人工智能发展白皮书

原创 | 文 BFT机器人 在科技日新月异的今天&#xff0c;人工智能已成为最具革命性的技术之一&#xff0c;有望对人类社会生活产生显著的影响。过去几年&#xff0c;人工智能相关理论研究技术创新、软硬件升级等整体推进&#xff0c;极大地促进了人工智能行业的发展。 进入2022…

【BurpSuite常用功能介绍】

BurpSuite的使用 1.运行BurpSuite 2.代理设置 打开软件后&#xff0c;我们第一件事就应该去调试软件和浏览器的代理&#xff0c;让BURP能够正常工作抓包 proxy--options&#xff0c;我端口默认使用8080 然后我们打开一个浏览器&#xff0c;进入代理设置 (注意一点&#xff0…

JAVA switch case 穿透问题

1&#xff0c;前提 其实开发中很少会用到switch &#xff0c;一般更倾向于if-else&#xff0c; 但是最近接手的项目&#xff0c;前人写的代码都用switch &#xff0c; 但是我一直以来对switch 的理解就跟if一样&#xff0c; 然后项目运用的时候才发现这玩意居然还有穿透问题 …

python 模块openpyxl 读取写入.xlsx文件

Python操作Excel的模块有很多&#xff0c;并且各有优劣&#xff0c;不同模块支持的操作和文件类型也有不同。下面是各个模块的支持情况&#xff1a; xlrd&#xff1a;xlrd 读取.xls文件xlwings&#xff1a;xlwings 读取写入Excel文件xlwt&#xff1a;xlwt 写入.xls文件 一、…

Springboot集成RocketMQ——简单使用

目录 1.MQ选型 2.RocketMQ基本架构 3.Springboot集成RocketMQ 4.顺序消息 5.延时消息 6.事务消息 1.MQ选型 目前市面上的MQ选型&#xff1a;主要分为3个类型 Kafka&#xff1a;吞吐量大&#xff0c;且性能好&#xff0c;集群高可用&#xff1b;会丢失数据&#xff0c;功…

Linux安装FileBrowser(简洁版)

项目简介安装目录 mkdir -p /opt/filebrowser/data && cd /opt/filebrowser 安装包下载 wget https://github.com/filebrowser/filebrowser/releases/download/v2.24.2/linux-amd64-filebrowser.tar.gz 注意&#xff1a;https://github.com/filebrowser/filebrowser/re…