A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© China_Riven 中级黑马   /  2015-7-23 21:14  /  706 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

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

public class Test5
{

    /**
     * 5、 已知一个类,定义如下:
     * package cn.itcast.heima;
     * public class DemoClass {
     * public void run()
     * {
     * System.out.println("welcome to heima!");
     * }
     * }
     * (1) 写一个Properties格式的配置文件,配置类的完整名称。
     * (2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射的方式运行run方法。
     *
     * @throws Exception
     */
    public static void main(String[] args) throws Exception
    {
        // 创建Properties集合对象
        Properties p = new Properties();
        // 创建文件输入流对象
        FileInputStream fis = new FileInputStream("src/com/itheima/a.Properties");
        p.load(fis);
        fis.close();
        // 获取键值
        String property = p.getProperty("className");
        System.out.println(property);
        // 获取 字节码文件对象
        Class<?> Class1 = Class.forName(property);
        // 调用Class类的构造方法
        Constructor<?> c = Class1.getConstructor();
        // 获取DemoClass对象
        Object n = c.newInstance();
        String property2 = p.getProperty("methodName");
        Method d = Class1.getDeclaredMethod(property2);
        // 反射获取到方法
        d.invoke(n);

    }

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马