美文网首页
反射机制_经典案例解析

反射机制_经典案例解析

作者: 小安的大情调 | 来源:发表于2019-12-27 15:12 被阅读0次

努力努力再努力xLg

反射

​ 通过Class对象获取class文件中的成员变量Filed、构造方法Constructor、方法Method的过程。

所谓万物皆对象,在Java中所有的对象都是有属于自己的Class对象。所以通过反射机制,可以很轻松的实现意想不到的功能。

​ 所以可以看作为框架设计的灵魂。

​ 它可以将类的各个组成部分封装为其他对象,这便是反射机制

好处

  1. 可以在程序运行过程中,操作这些对象。
  2. 可以解耦,提高程序的可扩展性。

有一处需要注意

​ 同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。

​ 所以在同一一次运行中,使用字节码获取到的不同名称的对象,实则都是同一个对象。

案例介绍

​ 需求:写一个"框架",不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法

​ 具体实现,这里选用配置文件加上反射机制,对任意类的实例化

package com.java.reflect;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 需求:
 * 写一个"框架",不能改变该类的任何代码的前提下,
 * 可以帮我们创建任意类的对象,并且执行其中任意方法
 * <p>
 * 实现: 使用配置文件 配置 实例对象名称
 * 再使用反射机制,对对象名称进行实例化
 *
 * @author by Mr. Li
 * @date 2019/12/27 14:45
 */
public class Test {
    public static void main(String[] args) throws Exception {
        // 1. 第一步 读取 配置文件
        // 1.1 创建Properties类
        Properties properties = new Properties();
        // 使用当前类的classloader 获取 文件流对象
        InputStream is = Test.class.getClassLoader().getResourceAsStream("pro.properties");
        properties.load(is);

        // 2.使用反射 对配置文件中 要求的实例对象进行实例化
        Class<?> clazz = Class.forName(properties.getProperty("className"));
        String method = properties.getProperty("classMethod");
        Object o = clazz.newInstance();// 实例化
        clazz.getMethod(method).invoke(o);
    }
}

希望 东西一点一点累计,能力一点一点攀升!加油

相关文章

  • 反射机制_经典案例解析

    努力努力再努力xLg 反射 ​ 通过Class对象获取class文件中的成员变量Filed、构造方法Const...

  • Android之反射机制与JSON解析

    1 反射机制&JSON解析 【 Java的高级特性:反射机制 publicclass Student { pu...

  • 反射机制案例

    在Java中,可以利用反射获取指定类型的公有/私有属性、方法,生成该类的实例对象,并调用该对象的方法。 以下反射相...

  • 反射机制原理的深度理解2017-12-26

    首先我们编写person.java文件如下: 然后创建测试反射机制的类 原理解析: 要理解反射机制的实现过程,首先...

  • java反射机制

    java的反射机制 1 JAVA的反射机制是什么?反射机制能做什么?反射机制的优点与缺点2 认识 Class...

  • 反射之一

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

  • 反射之二

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

  • Java反射机制入门

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

  • OC的反射机制

    目录 1 反射机制的概念 2 反射机制原理 首先还是按照惯例和大家解释下什么反射机制? 反射的概念是由Smith在...

  • 反射之三

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

网友评论

      本文标题:反射机制_经典案例解析

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