java反射应用-配置文件的方式实例化对象


前言:本博客内容由张孝祥Java高新技术反射篇整理而来




项目目录结构


java反射应用-配置文件的方式实例化对象_第1张图片


config.properties


classFileName=java.util.ArrayList



ReadPropertisToInstance.java


package com.dao.chu.movie;

import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Properties;

public class ReadPropertisToInstance {

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
		
		//1.getResourceAsStream直接获取 。带有‘/’表示绝对路径 否则为相对路径
		//InputStream in =ReflectTest2.class.getResourceAsStream("/spring/config.properties");
		//2.getClassLoader() 获取classpath路径
		InputStream in = ReadPropertisToInstance.class.getClassLoader().getResourceAsStream("spring/config.properties");
		Properties properties = new Properties();
		properties.load(in);
		in.close();
		
		String className = properties.getProperty("classFileName");
		Class clazz = Class.forName(className);
		Collection collection=(Collection) clazz.newInstance();
		
		collection.add("1");
		collection.add("2");
		collection.add("3");
		
		System.out.println(collection.size());
		
	}
}


运行结果:

3


说明获取到了ArrayList的实例对象

你可能感兴趣的:(个人总结)