美文网首页
JAVA 反射应用

JAVA 反射应用

作者: 区块东西 | 来源:发表于2020-03-27 14:14 被阅读0次

什么是反射?

最简单的理解,可以将"ClassName"转换成一个真正的对象。可以动态的调用某个函数,创建某个类。
像python,php这种动态语言很容易实现,java就需要借助反射。

例子读取spring.txt中的字段,实例化类,调用方法

示例代码:

  • test类
package com.hellomaven;


import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;

public class TestService {
    @SuppressWarnings({"rawtypes", "unchecked"})
    public static void main(String[] args) throws Exception {

        File springConfigFile = new File("./src/main/java/com/hellomaven/spring.txt");

        //获取配置
        Properties springConfig = new Properties();
        springConfig.load(new FileInputStream(springConfigFile));
        String className = (String)springConfig.get("class");
        String methodName = (String)springConfig.get("method");

        //得到类类型
        Class clazz = Class.forName(className);
        //得到方法
        Method m = clazz.getMethod(methodName);
        //得到构造函数
        Constructor c = clazz.getConstructor();
        //构造一个实例,所有实例都继承自Object
        Object service = c.newInstance();
        //调用方法。
        m.invoke(service);
    }
}
  • Hero类
package com.hellomaven;

public class Hero {
    public static void main(String []args){
        System.out.println("hello");
    }

    public String name;
    double hp;
    double mp;

    static String copyright;
    static {
        System.out.println("初始化 copyright");
        copyright = "版权由xxx公司所有";
    }

    public void Say(String words){
        System.out.println(words);
    }

    public void UseQ(){
        System.out.println("use q");
    }

    public void UseW(){
        System.out.println("use w");
    }
}
  • spring.txt文件
class=com.hellomaven.Hero
method=UseQ

相关文章

  • 安卓反射和动态代理的应用

    提纲 java反射基础 反射在Android中的应用 Java动态代理 动态代理在Android的应用 java反...

  • 反射之一

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

  • 反射之二

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

  • 反射之三

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

  • Chapter 13 . 反射机制

    阅读原文 Chapter 13 . 反射机制 13.1 Java反射机制研究及应用 Java Reflection...

  • 【转】Java编程学习之反射技术及其应用

    【转】Java编程学习之反射技术及其应用 (原文链接:java编程学习之反射技术及其应用) 说明:原文中给出的代码...

  • JAVA 反射应用

    什么是反射? 最简单的理解,可以将"ClassName"转换成一个真正的对象。可以动态的调用某个函数,创建某个类。...

  • Java反射应用(1)

    何为反射:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能...

  • 反射(二)

    反射(二) 通过栗子来更好的理解反射,以及对反射技术进行应用。 首先,整两个model——car.java和Ben...

  • 博客地址

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

网友评论

      本文标题:JAVA 反射应用

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