美文网首页
Java反射学习总结

Java反射学习总结

作者: 杨凯飞 | 来源:发表于2018-05-29 19:36 被阅读0次

反射的概述

    什么是Java的反射机制

            Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能成为java语言的反射机制。

    Java的反射机制的作用

            是用来编写一一些通用性较高的代码或者框架的时候使用。

反射常用对象的概述

      Class

              Class类的实例表示正在运行的Java应用程序中的类和接口

      Constructor

              关于类的单个构造方法的信息以及对它的访问权限

      Field

              Field提供有关类或接口的单个字段的信息,以及对它的动态访问权限。

      Method

              Method提供关于类或接口.上单独某个方法的信息。

反射对应类中的成员

                                    Class类

    Java中java.lang.Class类用于表示一一个类的字节码(.class)文件

     如何得到某个class文件对应的Class对象

            1.已知类和对象的情况下

                    类名.class

                    对象.getClass() --- Object类提供

            2.未知类和对象的情况下

                Class.forName(“包名类名”)

                Class类代表某个类的字节码,并提供了加载字节码的方法:forName(”包名.类名”)

                 forName方法用于加载类字节码到内存中,并封装成一个Class对象

获得class对象

                                Constructor类

Constructor类的实例对象代表类的一一个构造方法

得到某个类所有的构造方法

      Constructor [] constructors= Class.forName("java.lang.String").getConstructors();

得到指定的构造方法并调用

    Constructor constructor = Class.forName("java.lang.String").getConstructor(String.class);

     String str = (String)constructor.newInstance("aaa");

Class类的newInstance()方法用来调用类的默认构造方法

    String obj =(String)Class.forName("java.lang.String").newInstance();

Constructor

                                    Field类

Field类代表某个类中的一个成员变量,并提供动态的访问权限

Field对象的获得

     1. 得到所有的成员变量

              Field[] fields = c.getFields(); //取得所有public属性(包括父类继承)

              Field[] fields = c.getDeclaredFields(); //取得所有声明的属性

    2.得到指定的成员变量

             Field name = C. getField("name");

              Field name = C. getDeclaredField("name");

    3.设置Filed变量是否可以访问

          field. setAccessible(boolean);

    4.Field变量值的读取、设置

          field.get(obj)

          filed.set(obj,value);

Field 

                                    Method类

Method类代表某个类中的一个成员方法

Method对象的获得

    1.获得所有方法

        getDeclaredMethods()

        getMethods()

    2.获得指定的方法

        getDeclaredMethod(String name, Class<?> .. parameterTypes)

        getMethod(String name, Class<?> ... parameterTypes)

通过反射执行方法

    invoke(Object obj,Object... args)

Method

相关文章

  • 反射之一

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • 反射之二

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • Java学习总结-反射

    反射经常听到这个词,但是总是不理解这个意思。今天便来理解一下反射这个概念,为什么说在框架设计中,反射用到的比较多。...

  • 反射之三

    总结内容源自以下文章 粗浅看java反射机制 反射机制应用实践 谈谈java反射机制 Java Reflectio...

  • Java反射学习总结

    反射的概述 什么是Java的反射机制 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和...

  • Java反射机制学习总结

    介绍反射机制 1.反射机制的应用场景 逆向代码、动态生成类框架等,使用反射机制能够大大的增强程序的扩展性。 2.反...

  • Java学习总结之反射

    反射库提供了一个非常丰富且精心设计的工具集,以便能够动态编写能够操纵Java代码的程序。这项功能被大量应用于Jav...

  • Java反射

    简单总结下什么是Java反射,怎么使用。 Java反射机制 反射就是指JVM运行期,获取指定类所有的属性和方法的一...

  • [JAVA学习笔记] 反射机制

    [JAVA学习笔记] 反射机制 Java的反射通过Class类和java.lang.reflect类库实现。通过它...

  • Java中反射的用途

    Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框...

网友评论

      本文标题:Java反射学习总结

      本文链接:https://www.haomeiwen.com/subject/yioajftx.html