黑马程序员技术交流社区
标题:
Properties集合通过反射使用类对象
[打印本页]
作者:
122125241
时间:
2015-7-5 22:36
标题:
Properties集合通过反射使用类对象
package com.itheima;
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;
public class Test7 {
/**
* 7、 已知一个类,定义如下:
*
* package cn.itcast.heima;
* public class DemoClass {
* public void run() {
* System.out.println("welcome to heima!");
* }
* }
* (1)写一个Properties格式的配置文件,配置类的完整名称。 (2)
* (2)写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
* @param args
*/
public static void main(String[] args) throws Exception {
loadFile();
}
public static void loadFile() throws Exception {
// 利用Properties类加载配置文件,它以键值对形式取出数据
Properties prop = new Properties();
// 字节读取配置文件
FileInputStream fis = new FileInputStream(new File(
"src/com/itheima/Test.properties"));
// 加载配置文件中键值
prop.load(fis);
// System.out.println(prop);
// 关闭流
fis.close();
// 设置了key,通过配置文件的key取出类的完整名称
String stringClassName = prop.getProperty("className");
// 设置了key,通过配置文件的key取出类的完整方法名称
String stringMethedName = prop.getProperty("methedName");
//反射 反射三步1
Class<?> forName = Class.forName(stringClassName);
//调用无参构造 2
Constructor<?> constructor = forName.getConstructor();
System.out.println(forName);
//利用无参构造对象实例化 3
Object newInstance = constructor.newInstance();
//调取对象的方法
Method methods = forName.getMethod(stringMethedName);
//调用方法(调用newInstance对象的methods方法)
methods.invoke(newInstance);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2