随笔 java 反射基础,Java入门--反射

Java入门--反射(Reflect)

利用反射和配置文件, 加载不同的类和方法

创建配置文件对象 new Properties()

通过当前类获取类加载器 CurrentClass.class.getClassLoader()

通过类加载器获取配置文件资源 classLoader.getResourceAsStream("project.properties")

获取配置文件的相关信息 pro.getProperty("className")

获取需要加载的类以及方法 Class.forName(className), class.getMethod(methodName)

调用方法 method.invoke(obj) (参数信息: 方法相应的类名, 以及方法参数)

package io.github.wangermaizi.day14;

import java.io.IOException;

import java.io.InputStream;

import java.lang.reflect.Method;

import java.util.Properties;

// 根据配置文件调用不同的代码

public class ReflectTest {

public static void main(String[] args) throws Exception {

// 1. 创建配置文件对象 (常用操作)

Properties pro = new Properties();

// 2. 获取配置文件路径

// 2.1 获取class目录下的配置文件

ClassLoader classLoader = ReflectTest.class.getClassLoader();

// ReflectTest.class.getClassLoader(); // 获取类字节码

// 通过获取到的类加载器, 获取配置文件的字节流

InputStream is = classLoader.getResourceAsStream("pro.properties");

// 3. 加载配置文件(或者说加载文件流)

pro.load(is); // --> 此处有可能会报错

// 4. 获取配置文件中定义的信息

String className = pro.getProperty("className");

String methodName = pro.getProperty("methodName");

// 通过类名调用方法名

Class aClass = Class.forName(className);

Object obj = aClass.newInstance();

// 获取方法对象

Method method = aClass.getMethod(methodName);

// 调用方法对象

method.invoke(obj);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值