美文网首页
JAVA反射

JAVA反射

作者: 蓝色Hippie | 来源:发表于2020-10-21 09:39 被阅读0次

一、反射的概述

1.反射机制

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

2.作用

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

3.反射常用对象

3.1Class

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

3.2Constructor

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

3.3Fileld

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

3.4Method

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

二、反射常用的API

1.Class类

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

1.2如何得到某个class文件对于的calss对象:

---已知类和对象的情况下

          类名.class

          对象.getClass()

---未知类和对象的情况下:

         Class.forName("包名.类名")

1.3 Class类代表某个类的字节码,并提供了加载字节码的方法:forName("包名.类名"),forName方法用于加载类字节码到内存中,并封装成一个class对象

2.Constructor类

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

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

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

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

String str=(String) cons.newInstace("abc");

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

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

3.Field类

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

3.2Field对象的获取

----得到所有的成员变量

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

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

---得到指定的成员变量

     Field name=c.getField("name');

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

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

      field.setAccessible(boolean);

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

     field.get(obj);

     field.set(ojb,value);

4.Method类

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

4.2Method对象的获得

---获得所有方法

     getDeclaredMethods()

     getMethods() //得到所有public属性,包括父类继承

---获得指定的方法

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

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

4.3通过反射执行方法

    invoke(Object obj,Object...args);

相关文章

  • 博客地址

    java注解-01、java注解-02、Git面试资源java反射-01、java反射-02、java反射-03为...

  • Java反射机制入门

    Java反射机制入门 一、什么是反射 JAVA反射机制(The JAVA reflection mechanism...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • 反射之一

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

  • 反射之二

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

  • Java基础之反射

    Java基础之反射 反射基本介绍 反射的使用通过反射调用属性和方法通过反射获取配置文件 反射基本介绍 Java反射...

  • Java 反射机制

    Java 反射机制 什么是反射 Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。 ...

  • 一探究竟:Java反射效率低的原因到底在哪?

    预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低...

  • 面试官说:大家都说 Java 反射效率低,你知道原因在哪里么

    预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低...

  • Java面试题之JavaSE高级

    一、Java中的反射 1.说说你对Java中反射的理解 java中的反射首先是能够获取到Java...

网友评论

      本文标题:JAVA反射

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