Java关于反射的理解

news2024/9/30 15:26:58

关于反射的理解

Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。

框架 = 反射 + 注解 + 设计模式。

3.体会反射机制的“动态性”

//体会反射的动态性
@Test
public void test2(){

    for(int i = 0;i < 100;i++){
        int num = new Random().nextInt(3);//0,1,2 随机数 运行时确定
        String classPath = "";
        switch(num){
            case 0:
                classPath = "java.util.Date";
                break;
            case 1:
                classPath = "java.lang.Object";
                break;
            case 2:
                classPath = "com.atguigu.java.Person";
                break;
        }

        try {
            Object obj = getInstance(classPath);
            System.out.println(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

/*
创建一个指定类的对象。
classPath:指定类的全类名
 */
public Object getInstance(String classPath) throws Exception {
   Class clazz =  Class.forName(classPath);
   return clazz.newInstance();
}

4.反射机制能提供的功能

➢在运行时判断任意–个对象所属的类
➢在运行时构造任意-一个类的对象
➢在运行时判断任意–个类所具有的成员变量和方法
➢在运行时获取泛型信息.
➢在运行时调用任意-一个对象的成员变量和方法
➢在运行时处理注解
➢生成动态代理

5.相关API

java.lang.Class:反射的源头
java.lang.reflect.Method
java.lang.reflect.Field
java.lang.reflect.Constructor

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

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

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

相关文章

大模型的涌现能力 (Emergent Abilities of LLM)

作者 | 曾伟豪 北京邮电大学 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/609339534 大家好&#xff0c;这里是NewBeeNLP。今天一起来研究下LLM中的emergent abilities现象。 论文名称&#xff1a;Emergent Abilities of Large Language Models论文链接&#xff1a;https:/…

java进阶1(数组)

数组 数组是数据的集合&#xff0c;一个容器&#xff0c;用来存储任何类型的数据&#xff0c;包括原始数据类型和引用数据类型&#xff0c;但是一旦指定了数组的类型之后&#xff0c;就只能用来存储指定类型的数据。 数组声明的三种方式&#xff1a; 数据类型[] 数组名 new …

通过netstat命令查看进程与端口的对应关系

文章目录 前言一、linux 离线安装二、使用 前言 netstat是一个用于显示当前网络连接状态和统计信息的命令行工具。使用netstat可以解决以下问题&#xff1a; 查看当前计算机上的网络连接状态&#xff0c;了解计算机是否正在与其他计算机通信。 检查计算机上是否存在未经授权的…

k8s日志收集组件 Grafana loki --- 快速安装

grafana提供了基于loki的完整安装模式&#xff0c;可基于helm3实现在k8s上完整部署。具体安装与快速使用方式如下所示。 上手指南 添加loki-stack仓库 helm repo add grafana https://grafana.github.io/helm-charts创建loki namespace kubectl create namespace loki部署l…

若依(ruoyi)前端Vue3 Element Plus Vite版样式修改

1. 导航栏样式 背景色 位置&#xff1a;src/layout/components/Navbar.vue 类名&#xff1a;.navbar // 比如背景色等 background: #1b2535;右侧图标&#xff08;全屏等&#xff09; .right-menu-item {display: inline-block;padding: 0 8px;height: 100%;font-size: 18p…

Json在Qt中的使用

文章目录 Json在Qt中的使用主要使用的类QJsonValueQJsonObjectQJsonDocument实战1. 手动写Json文件2. 实现程序&#xff08;从Json文件中读取数据&#xff0c;更改Json文件中的数据&#xff09; Json在Qt中的使用 主要使用的类 Json 类介绍QJsonDocument它封装了一个完整的 J…

Loki+Grafana(外)采集Kubernetes(K8s)集群(基于containerd)

一、Loki简介 1、简介 Loki Loki是一个开源、分布式的日志聚合系统&#xff0c;由Grafana Labs推出。Loki的设计目标是为了高效地处理大规模的日志数据&#xff0c;并具有良好的可扩展性。Loki的最大优点是它具有低资源占用和高效的查询速度。这是因为Loki不需要在处理日志数据…

工具篇6--kafka消息模型介绍

前言&#xff1a;kafka 诞生于需要处理大数据量的背景下&#xff0c;在当前的开发中&#xff0c;数据量的量级也是不断的提高&#xff0c;所以就非常有必要去研究一下kafka 的模型了&#xff1b; kafka 的官网先放一下&#xff1a; 1 英文官网&#xff1b; 2 中文网站&#xf…

Spring Boot 中使用 JSR-303 数据校验

Spring Boot 中使用 JSR-303 数据校验 在 Web 开发中&#xff0c;数据校验是一个非常重要的环节。它可以帮助我们在用户提交表单数据时验证数据的合法性&#xff0c;防止一些不必要的错误和漏洞。在 Spring Boot 中&#xff0c;我们可以使用 JSR-303 数据校验规范来实现数据校…

黑马程序员前端 Vue3 小兔鲜电商项目——(三)Layout 首页页面布局

文章目录 组件结构快速搭建首页组件结构Nav 组件Header 组件Footer 组件index.vue 中添加组件 字体图标渲染一级导航渲染封装接口函数渲染数据 吸顶导航交互实现安装 VueUser 插件组件静态结构添加组件实现吸顶交互 Pinia优化重复请求 组件结构快速搭建 首页组件结构 页面效果…

字节跳动的项目经理,是什么神仙存在?

早上好&#xff0c;我是老原。 要是说起项目经理的待遇天花板&#xff0c;你觉得会是什么样的&#xff1f; 在2022年&#xff0c;虽然很多互联网大厂都在大裁员&#xff0c;同时也刺激了更多人想进大厂的心。 就从项目经理这个岗位来看&#xff0c;你说大小厂的工作内容差距…

Win11的两个实用技巧系列之找不到项目的文件如何删除、无法用蓝牙耳机的多种解决办法

Win11 新预览版怎么恢复文件管理器经典功能? Win11 新预览版怎么恢复文件管理器经典功能&#xff1f;Win11最新版去掉了文件管理器经典功能&#xff0c;该怎么操作呢&#xff1f;下面我们就来看看详细的恢复方法 微软在日前发布的 Win11 Dev Build 23481 预览版更新中&#x…

建筑中的智能照明系统

【摘要】&#xff1a;建筑智能照明工程中智能照明控制系统发展迅速&#xff0c;具有舒适性和节能性两方面优势。智能照明控制系统已经处于模块化高速发展阶段&#xff0c;如今更好的控制方案成为制约系统发展的瓶颈。文章在研究了国内外智能照明系统的基础上&#xff0c;从照明…

Java 结合中文分词库 jieba 统计一堆文本中各个词语的出现次数【代码记录】

文章目录 1、需求2、代码3、结果 1、需求 2、代码 package com.zibo.main;import com.huaban.analysis.jieba.JiebaSegmenter;import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.List; imp…

Picker, ColorPicker, DatePicker 的使用

1. Picker 选择器的使用 1.1 实现 /// 选择器 struct PickerBootcamp: View {State var selection: String "Most Recent"let filterOptions:[String] ["Most Recent", "Most Popular", "Most Liked"]init(){UISegmentedControl.ap…

Python基础(16)——Python集合(set)

Python基础&#xff08;16&#xff09;——Python集合&#xff08;set&#xff09; 文章目录 Python基础&#xff08;16&#xff09;——Python集合&#xff08;set&#xff09;目标一. 创建集合二. 集合常见操作方法2.1 增加数据2.2 删除数据2.3 查找数据 三. 总结 目标 创建…

Python基础(17)——Python运算符、公共方法、类型转换

Python基础&#xff08;17&#xff09;——Python运算符、公共方法、类型转换 文章目录 Python基础&#xff08;17&#xff09;——Python运算符、公共方法、类型转换目标一. 运算符1.1 1.2 *1.3 in或not in 二. 公共方法2.1 len()2.2 del()2.3 max()2.4 min()2.5 range()2.6 e…

4个重要的云安全方向

导语 伴随着云计算的不断发展和成熟&#xff0c;云安全越来越受到重视&#xff0c;每一年云安全都有不同的重点话题值得关注&#xff0c;今天我们一起来看看2023非常重要4个云安全话题 云攻击路径发现和威胁建模 随着攻击面的扩大&#xff0c;企业云安全的复杂性也会增加。为您…

一文搞懂 MySQL 中的常用函数及用法

0️⃣前言 MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置函数来处理数据。本文将介绍MySQL中的各种常用函数&#xff0c;包括字符串函数、日期函数、数学函数、聚合函数等。 文章目录 0️⃣前言1️⃣字符串函数1.1CONCAT函数1.2SUBSTRING函数1.3REPLACE函…

测试用例常用方法和选择原则

目录 前言&#xff1a; 一、等价类划分法 等价类思考步骤&#xff1a; 二、边界值 边界值的方法小结&#xff1a; 三、因果图法 因果图中的符号&#xff1a; 利用因果导出测试用例需要经过以下几个步骤&#xff1a; 四、判定表法 组成部分&#xff1a; 书写步骤&#xff1a; 五…