有那些网站宁夏手机网站建设

news/2025/10/9 2:40:24/文章来源:
有那些网站,宁夏手机网站建设,网络设计思路,建设网站模块需要哪些反射 1 定义2 用途(了解)3 反射基本信息4 反射相关的类#xff08;重要#xff09;4.1 Class类(反射机制的起源 )4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) 4.2 反射示例4.2.1 获得Class对象的三种方式4.2.2 反射的使用 5、反射优点和缺点 1 定义 Java的反… 反射 1 定义2 用途(了解)3 反射基本信息4 反射相关的类重要4.1 Class类(反射机制的起源 )4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) 4.2 反射示例4.2.1 获得Class对象的三种方式4.2.2 反射的使用 5、反射优点和缺点 1 定义 Java的反射reflection机制是在运行状态中对于任意一个类都能够知道这个类的所有属性和方法对于任 意一个对象都能够调用它的任意方法和属性既然能拿到那么我们就可以修改部分类型信息这种动态获取信 息以及动态调用对象方法的功能称为java语言的反射reflection机制 2 用途(了解) 在日常的第三方应用开发过程中经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统 应用开放这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法 。反射最重要的用途就是开发各种通用框架比如在spring中我们将所有的类Bean交给spring容器管理无 论是XML配置Bean还是注解配置当我们从容器中获取Bean来依赖注入时容器会读取配置而配置中给的 就是类的信息spring根据这些信息需要创建那些Beanspring就动态的创建这些类。 3 反射基本信息 Java程序中许多对象在运行时会出现两种类型运行时类型(RTTI)和编译时类型例如Person p new Student()这句代码中p在编译时类型为Person运行时类型为Student。程序需要在运行时发现对象和类的真实 信息。而通过使用反射程序就能判断出该对象和类属于哪些类。 4 反射相关的类重要 4.1 Class类(反射机制的起源 ) 代表类的实体在运行的Java应用程序中表示类和接口 . Java文件被编译后生成了.class文件JVM此时就要去解读.class文件 ,被编译后的Java文件.class也被JVM解析为一个对象这个对象就是 java.lang.Class .这样当程序在运行时每个java文件就最终变成了Class类对象的一个实例。我们通过Java的反射机制应用到这个实例就可以去获得甚至去添加改变这个类的属性和动作使得这个类成为一个动态的类 . 4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) (重要)常用获得类相关的方法 (重要)常用获得类中属性相关的方法(以下方法返回值为Field相关) (了解)获得类中注解相关的方法 (重要)获得类中构造器相关的方法以下方法返回值为Constructor相关 (重要)获得类中方法相关的方法以下方法返回值为Method相关 4.2 反射示例 4.2.1 获得Class对象的三种方式 在反射之前我们需要做的第一步就是先拿到当前需要反射的类的Class对象然后通过Class对象的核心方法达到反射的目的即在运行状态中对于任意一个类都能够知道这个类的所有属性和方法对于任意一个对象都能够调用它的任意方法和属性既然能拿到那么我们就可以修改部分类型信息。 第一种使用 Class.forName(“类的全路径名”); 静态方法。 前提已明确类的全路径名。 第二种使用 .class 方法。 说明仅适合在编译前就已经明确要操作的 Class 第三种使用类对象的 getClass() 方法 示例 class Student{//私有属性nameprivate String name bit;//公有属性agepublic int age 18;//不带参数的构造方法public Student(){System.out.println(Student());}private Student(String name,int age) {this.name name;this.age age;System.out.println(Student(String,name));}private void eat(){System.out.println(i am eat);}public void sleep(){System.out.println(i am pig);}private void function(String str) {System.out.println(str);}Overridepublic String toString() {return Student{ name name \ , age age };} } public class TestDemo {public static void main(String[] args) { /* 1.通过getClass获取Class对象 */Student s1 new Student();Class c1 s1.getClass(); /* 2.直接通过 类名.class 的方式得到,该方法最为安全可靠程序性能更高 这说明任何一个类都有一个隐含的静态成员变量 class */Class c2 Student.class; /* 3、通过 Class 对象的 forName() 静态方法来获取用的最多 但可能抛出 ClassNotFoundException 异常 */Class c3 null;try { //注意这里是类的全路径如果有包需要加包的路径c3 Class.forName(Student);} catch (ClassNotFoundException e) {e.printStackTrace();} //一个类在 JVM 中只会有一个 Class 实例,即我们对上面获取的 //c1,c2,c3进行 equals 比较发现都是trueSystem.out.println(c1.equals(c2));System.out.println(c1.equals(c3));System.out.println(c2.equals(c3));} } 4.2.2 反射的使用 接下来我们开始使用反射我们依旧反射上面的Student类把反射的逻辑写到另外的类当中进行理解 注意所有和反射相关的包都在 import java.lang.reflect 包下面。 import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method;public class ReflectClassDemo { // 创建对象 public static void reflectNewInstance() { try { Class? classStudent Class.forName(Student); Object objectStudent classStudent.newInstance(); Student student (Student) objectStudent; System.out.println(获得学生对象student); } catch (Exception ex) { ex.printStackTrace(); } } // 反射私有的构造方法 屏蔽内容为获得公有的构造方法 public static void reflectPrivateConstructor() { try { Class? classStudent Class.forName(Student); //注意传入对应的参数 Constructor? declaredConstructorStudent classStudent.getDeclaredConstructor(String.class,int.class); //Constructor? declaredConstructorStudent classStudent.getConstructor(); //设置为true后可修改访问权限 declaredConstructorStudent.setAccessible(true); Object objectStudent declaredConstructorStudent.newInstance(高博,15); //Object objectStudent declaredConstructorStudent.newInstance(); Student student (Student) objectStudent;System.out.println(获得私有构造哈数且修改姓名和年龄student); } catch (Exception ex) {ex.printStackTrace(); } }// 反射私有属性public static void reflectPrivateField() {try {Class? classStudent Class.forName(Student);Field field classStudent.getDeclaredField(name);field.setAccessible(true); //可以修改该属性的值Object objectStudent classStudent.newInstance();Student student (Student) objectStudent;field.set(student,小明);String name (String) field.get(student);System.out.println(反射私有属性修改了name name);} catch (Exception ex) {ex.printStackTrace();}}// 反射私有方法public static void reflectPrivateMethod() {try {Class? classStudent Class.forName(Student);Method methodStudent classStudent.getDeclaredMethod(function,String.class);System.out.println(私有方法的方法名为methodStudent.getName()); //私有的一般都要加methodStudent.setAccessible(true);Object objectStudent classStudent.newInstance();Student student (Student) objectStudent;methodStudent.invoke(student,我是给私有的function函数传的参数);} catch (Exception ex) {ex.printStackTrace();}}public static void main(String[] args) { //reflectNewInstance(); //reflectPrivateConstructor(); //reflectPrivateField();reflectPrivateMethod();} }5、反射优点和缺点 优点 对于任意一个类都能够知道这个类的所有属性和方法对于任意一个对象都能够调用它的任意一个方法增加程序的灵活性和扩展性降低耦合性提高自适应能力反射已经运用在了很多流行框架如Struts、Hibernate、Spring 等等。 缺点 使用反射会有效率问题。会导致程序效率降低。具体参考这里http://www.imooc.com/article/293679反射技术绕过了源代码的技术因而会带来维护问题。反射代码比相应的直接代码更复杂 。

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

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

相关文章

网站建设专业书入门wordpress 帝国cms

一、K-means聚类算法 K均值聚类(K-means clustering)是一种常见的无监督学习算法,用于将数据集中的样本划分为K个不同的类别或簇。它通过最小化样本点与所属簇中心点之间的距离来确定最佳的簇划分。 K均值聚类的基本思想如下: …

做网站收广告费网站简单设计

最小实现和互质分式 2023年12月12日 文章目录 最小实现和互质分式1. 实现问题2. SISO严格正则系统的实现2.1 能控标准1型实现2.2 能观标准2型实现2.3 能观标准1型实现2.4 能控标准2型实现2.5 最小实现2.6 完全表征 3. 计算互质分式3.1 使用西尔韦斯特结式 4. SISO基于Markov参…

汕头高端网站建设前端外包

在 react antd 中,对表单做在前置项未填写时禁用后置项交互并提示的效果。 情景 最近有这么个需求,某个业务中,要填写一张表单,其中有这样两项:选择数据连接和选择数据表,数据表是数据连接下所拥有的表。…

wordpress菜单显示选项打不开优化公司治理结构的措施

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 在函数内部定义函数 在以下代码片段中,输出的结果是什么? def outer_function(x): def inner_function(y): return x y return inner_function add_five outer_func…

做羞羞事的网站建网站要租服务器吗

参考文章:深入理解JS引擎的执行机制 JavaScript 异步、栈、事件循环、任务队列 我的笔记:ES系列之Promise async 和 await Event Loop 前提 js是单线程的 js的Event Loop是JS的执行机制,深入了解JS的执行,就等于深入了解JS里的event …

美食城网站建设策划书济南百度推广

目录 一、mysql之存储过程的相关知识 1)存储过程的概念 2)存储过程的优点 二、存储过程的管理 1)创建存储过程 基本格式: 2)调用存储过程 格式: call 存储过程名称 3)查看存储过程 查…

做网站选什么配置电脑上海生活门户网

选择使用静态 IP 还是 DHCP(动态主机配置协议)取决于您的网络需求和环境。下面是它们的一些特点和适用场景: 静态 IP: 固定的 IP 地址:静态 IP 是手动配置在设备上的固定 IP 地址,不会随时间或网络变化而改…

农业网站怎么做郑州seo顾问培训

链表 链表(Linked List)是一种常见的数据结构,用于存储一系列具有相同类型的元素。链表由节点(Node)组成,每个节点包含两部分:数据域(存储元素值)和指针域(指…

Spec Kit 终结AI瞎写代码

Spec Kit 终结AI瞎写代码告别AI胡说八道!GitHub开源神器SpecKit来了! 先去看看这个教程吧:目录spec-kit是什么?核心理念(SDD 四个关键词)SpecKit组成与目录结构SpecKit典型适用场景安装过程完整工作流程阶段0:B…

长宁网站建设优化seowordpress高级检索插件

动态规划的算法题往往都是各大公司笔试题的常客。在不少算法类的微信公众号中,关于“动态规划”的文章屡见不鲜,都在试图用最浅显易懂的文字来描述讲解动态规划,甚至有的用漫画来解释,认真读每一篇公众号推送的文章实际上都能读得…

怎么知道网站有没有被收录嘉定西安网站建设

1、 文档目标 对 JTAG 接口有更多的认识,在遇到关于 JTAG 接口问题时有一些排查的思路。 2、 问题场景 在使用调试器过程时,免不了要接触到 JTAG 接口,当出现连接不上时,就不知道从哪来进行排查。 3、软硬件环境 1 软件版本&am…

广西住房和城乡建设厅网站证件谷歌推广怎么样

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节…

公司网站建设怎么计费2021跨境电商最火的产品

目录 一、v-show二、v-if2.1 基本使用2.2 条件渲染分组2.3 与 v-else-if、v-else 结合使用 三、v-if vs v-show四、测试案例 本节条件渲染所涉及到的指令有: v-showv-ifv-else-ifv-else 一、v-show 1. 用法: 语法: v-show" 表达式"&#xff…

做搜狗网站点击WordPress图片上传最大尺寸

第一段 第二段 实现思路 通过 GestureDetector 的 Drag 方法,动态改变Dialog的高度,通过设置一个最大高度和最小高度分成两层进行展示 实现 常用的展示BottomSheet的方法为 showModalBottomSheet /// 设置最高最好以高度的比例进行设置,方…

12388网站建设管理情况PHP网站开发与管理设计心得

基本使用TortoiseGit 操作本地仓库(分支) 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响。 为何要…

莒南做网站网站建设技术的实现

第十三题讲解人:张小龙 8.23邮箱:2304940425qq.com一.什么是final?final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变&…

做网站的如何找业务常州网上车管所

在 Web.config 中创建数据库连接串我们需要在网站的配置文件中增加一些行&#xff0c;以便 Entity Framework 知道如何连接到我们的数据库&#xff0c;双击Web.config 文件。 卷到文件的最后&#xff0c;然后增加一个 <connectionStrings> 的配置节&#xff0c;如何所示&…

嘉兴网站建设企业网站制作军事新闻大事

原标题&#xff1a;2018河南高考一分一段统计表&#xff0c;查排名必备&#xff01;&#xff1a;点击这里信息省招办公布了2018年普通高招分数段统计表&#xff0c;对每个分数段有多少考生进行了详细统计。你考了多少分&#xff1f;处在哪个位置&#xff1f;快来看看&#xff0…

网站访问量过大jsp网站开发制作

在医疗器械行业找工作&#xff0c;有些JD上会明确要求熟悉相关的医疗器械法规和标准&#xff0c;比如&#xff1a;ISO13485、NMPA、CE、IEC62304、IEC60601、IEC14971等等&#xff0c;根据这些我来简单总结下&#xff1a; ISO 13485&#xff08;医疗器械质量管理体系&#xff0…

2025年R系列斜齿轮减速机厂家最新推荐:R系列斜齿轮减速机/F系列平行轴齿轮减速机/K系列螺旋斜齿轮减速机/S系列蜗轮减速机实力厂家精准传动解决方案

在工业自动化蓬勃发展的今天,减速机作为机械传动系统的核心部件,其性能优劣直接影响设备运行效率与稳定性。R系列斜齿轮减速机凭借结构紧凑、传动效率高、承载能力强等优势,已成为工业设备升级换代的首选传动方案。…