黑马程序员技术交流社区

标题: 我的黑马测试题5 [打印本页]

作者: China_Riven    时间: 2015-7-23 21:14
标题: 我的黑马测试题5
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);

    }

}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2