广告
返回顶部
首页 > 资讯 > 精选 >Java中反射机制有什么用
  • 213
分享到

Java中反射机制有什么用

2023-06-17 11:06:20 213人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“Java中反射机制有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中反射机制有什么用”这篇文章吧。反射:可以动态的获取指定类中的成员,以及建立类对象。好处

这篇文章主要为大家展示了“Java中反射机制有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中反射机制有什么用”这篇文章吧。

反射:

可以动态的获取指定类中的成员,以及建立类对象。

好处:提高了程序的扩展性。

张三,李四等这些生活中的对象,可以通过Person类的形式对其进行描述。

当class文件产生以后,这些class文件也是生活中的事物,那么对这些class文件也可以进行描述,该描述对应的类型就是Class。

在java中,每一个字节码文件都有一一个与之对应的Class对象。不仅包括引用数据类型,也包括基本数据类型。int.Class

String.class----Class        Class class1=String.class;        String s="abc";       Class class2=s.getClass();        Class class3 = Class.forName("java.lang.String");

以上就是获取字节码文件的三种方式。

   以前操作对象的时候用的是new关键字完成,并通过对象.成员方式进行调用

Person p= new Person();         //1.光加载Person.class文件。         //2.对对象进行初始化。         p.function("heihei");         //在对象调用成员方法时,需要明确两个因素:                 1.对象  2.获取参数列表

现在可以通过字节码对象完成以上动作。

//加载Person.class文件,获取Person.class文件对象的Class对象         Class clazz = Class.forName("Person");         //通过字节码文件对象,对指定类进行创建并初始化。         Person p=(Person)clazz.newInstance();         //通过对象调用成员         //p.function("heihei");

类可以作为参数进行传递,那么方法也一样可以作为参数进行传递,因为方法存在于字节码文件内, 所以可以通过Class对象获取字节码文件中的内容。

Method m =  Class.getMethod("function",String.class);          m.invoke(p,"heihei");

类或者方法都作为参数传递这样对于开发到底有那些好处呢?

需求:设计一个主板,为了提高后期的扩展性,也就是为了后期提高电脑的额功能,对外提供了PCI的接口。以方便电脑功能的扩展。

interface PCI{                      void open();                     void close();                 }                 class MainBoard{                     public void usePCI(PCI p){                         p.open();                         p.close();                         }                 }                 class MainBoardDemo{                     public static void main(String[] args){                         MainBoard mb=new MainBoard();                            //mb.usePCI(null);                                 mb.usePCI(NetCard);                         }                 }

后期,要进行电脑功能的扩展,需加入一个网卡,只需要定义一个网卡类实现PCI接口,只要覆盖这个规则,主板就可以使用该板卡。

class NetCard implements PCI{                        public void open();{                               system.out.println("open");                          }                            public void close();{                               system.out.println("close");                          }                  }

那么为了使用其网卡,还需要做一个步骤就是在已定义好的应用程序中,建立网卡对象,并作为参数传入,那么就是对原有的程序进行修改。这样不利于程序的健壮性。

可不可以在不修改源码的基础上运行后期出现的这些子类对象呢?

只要在前期设计时,将后期指定的类进行对象的建立,这样后期的子类对象就不需要再建立对象,只要将子类名称告知即可。

为了获取后期对象,并在前期可以使用,或对外提供了一个配置文件。前期程序可以直接操作该配置文件,后期的子类只需要将子类名称存入配置文件即可。

这时就需要动态的获取指定的类并预先创建对象

就用到了反射机制。重新修改一下应用程序。             class MainBoardDemo{                      public static void main(String[] args){                          MainBoard mb=new MainBoard();                          File file=new File("conf.txt");                          BufferenReader buff = new BufferenReader(new FileReader(file));                          String className = buff.readLine();                          Class clazz = Class.forName(className);                          PCI p = (PCI)clazz.newInstance();                          mb.usePCI(p);                          }                  }

配置文件conf.txt

      当后期出现网卡或者声卡的时候,只需要将该子类的全类名存入配置文件即可, 源程序不需要进行修改

      在该例中,可以了解,反射给我们的程序带来了很强的扩展性。

以上是“Java中反射机制有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Java中反射机制有什么用

本文链接: https://www.lsjlt.com/news/288924.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中反射机制有什么用
    这篇文章主要为大家展示了“Java中反射机制有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中反射机制有什么用”这篇文章吧。反射:可以动态的获取指定类中的成员,以及建立类对象。好处...
    99+
    2023-06-17
  • java反射机制有什么作用
    本篇内容介绍了“java反射机制有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本教程操作环境:windows7系统、java10版...
    99+
    2023-06-30
  • 什么是java反射机制
    java:“一切即对象”,感觉java语言本身在不断践行着这句话。java反射机制的基础来源于一个Class类,我们可以通过这个类里面的方法来对每一个类进行读取、实例化等。对象表示或封装一些数据。一个类被加载后,jvm会创建一个对应该类的C...
    99+
    2019-08-24
    java入门 java 反射机制
  • java反射机制是什么
    这篇文章主要介绍了java反射机制是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,...
    99+
    2023-06-14
  • java中反射机制的作用是什么
    本篇文章为大家展示了java中反射机制的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式...
    99+
    2023-06-14
  • Java中RTTI与反射机制的区别有什么
    今天就跟大家聊聊有关Java中RTTI与反射机制的区别有什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。RTTI,即Run-Time Type Identification,运行时...
    99+
    2023-05-31
    java rtti 反射机制
  • java反射机制原理是什么
    Java反射机制是指在运行时动态获取类的信息并操作类的属性和方法的能力。它允许程序在运行时通过类的全限定名来获取类的实例,调用类的构...
    99+
    2023-08-30
    java
  • JAVA反射机制时干什么的
    本篇内容主要讲解“JAVA反射机制时干什么的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA反射机制时干什么的”吧!1、什么是反射?在java开发中有一个非常重要的概念就是java反射机制...
    99+
    2023-06-29
  • java中反射机制的作用有哪些
    本篇文章为大家展示了java中反射机制的作用有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象...
    99+
    2023-06-06
  • JAVA语言中的反射机制是什么
    这篇文章主要为大家展示了“JAVA语言中的反射机制是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JAVA语言中的反射机制是什么”这篇文章吧。1、什么是反射?在java开发中有一个非常重要的...
    99+
    2023-06-29
  • java中反射机制的原理是什么
    这期内容当中小编将会给大家带来有关java中反射机制的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了...
    99+
    2023-06-14
  • Java中的反射机制是什么意思
    这篇文章给大家分享的是有关Java中的反射机制是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  今天我们就来讲讲java的反射机制。  当程序主动使用某个类的时候,如果该类还没有被加载到内存中,则系统会...
    99+
    2023-06-02
  • Java反射机制怎么应用
    本篇内容主要讲解“Java反射机制怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java反射机制怎么应用”吧!反射基础p.s: 本文需要读者对反射机制的API有一定程度的了解,如果之前没...
    99+
    2023-06-17
  • Java反射机制怎么使用
    今天小编给大家分享一下Java反射机制怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。反射的概述JAVA反射机制是在运...
    99+
    2023-06-30
  • java中的反射机制怎么应用
    Java中的反射机制可以应用于以下场景: 动态加载类:可以在运行时加载指定的类,而不是在编译时就确定类的类型。 创建对象:可...
    99+
    2023-10-23
    java
  • java反射机制的作用有哪些
    Java反射机制的作用有以下几个:1. 动态加载类:可以在运行时动态加载一个类,不需要在编译时确定类的全名。2. 动态创建对象:可以...
    99+
    2023-10-08
    java
  • Java反射有什么用
    小编给大家分享一下Java反射有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、回顾:什么是反射?反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作...
    99+
    2023-06-25
  • Java反射机制的原理是什么
    本篇文章给大家分享的是有关Java反射机制的原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近和一位师兄交流了一下Java,真可谓是大有收获,让我好好的学习了一下ja...
    99+
    2023-06-17
  • JAVA中怎么实现反射机制
    这期内容当中小编将会给大家带来有关JAVA中怎么实现反射机制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JAVA反射机制定义:  JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属...
    99+
    2023-06-17
  • Java反射机制有哪些特点
    Java反射机制有以下特点:1. 动态性:反射机制允许在运行时动态地获取类的信息,实例化对象和调用类的方法,而不需要在编译时确定类的...
    99+
    2023-10-07
    Java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作