美文网首页
Java反射

Java反射

作者: yelie | 来源:发表于2018-08-20 22:53 被阅读0次

反射就是把java类中的各种成分映射程一个个的java对象。
Class对象是由虚拟机将.class文件读入内存后自动创建的,一个类仅会产生一个Class对象

获取Class对象的三种方式:

1、Object.getClass();
2、任何类型(包括基本数据类型)都有一个静态的class属性
3、通过Class类的静态方法:forName(String className)(常用)

通过反射获取构造方法并调用创建对象

1、获取构造方法
Class类
public Constructor[] getConstructors();获取所有“公有的”构造方法;
public Constructor[] getDeclaredConstructors();获取所有的构造方法;
public Constructor getConstructor(Class...parameterTypes);获取单个“公有的”构造函数;
public Constructor getDeclaredConstructor(Class...parameterTypes);获取某个“公有、私有、默认、保护的”构造函数;
2、调用构造方法创建对象
Constructor类的newInstance(Object>>>initargs)方法,initargs为构造函数所需要的参数;

获取成员变量并调用

1、获取成员变量
Class类的
public Field[] getFields();
public Field[] getDeclaredFields();
public Field getField(String fieldName);
public Field getDeclaredField(String fieldName);
2、设置成员变量的值
Field类的set(Object obj, Object value)方法,obj为设置字段所属的对象,value为字段要设置的值;

获取成员方法并调用

1、获取成员方法
Class类的
public Method[] getMethods();
public Method[] getDeclaredMethods();
public Method getMethod();
public Method getDeclaredMethod();
2、调用成员方法
Method类的invoke(Object obj, Object...args)方法,obj为调用方法所属的对象,args为调用方法所需要的参数;

反射main方法

1、获取main方法
Class类的
public Method getMethod("main", String[].class);
2、调用main方法
Method类的invoke(null, (Object) new String[]{"a","b","c"})方法;

反射机制的应用:通过反射运行配置文件的内容、通过反射越过泛型检查(因为泛型用在编译期,编译后泛型擦除)、设计模式(工厂模式和单例模式)、框架技术;

相关文章

  • 博客地址

    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/epxriftx.html