package cn.com.java.wwh.www;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Properties;
/**
*@类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-2-12 上午11:48:06
*
*/
public class NewInstanceDemo2 {
private static Properties p ;
private static String fileName = "info.properties";
static{
p = new Properties();
// 建立输入流(建立从资源文件到程序的流对象)
InputStream inStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(fileName);
try {
// 加载资源流
p.load(inStream);
} catch (IOException e) {
e.printStackTrace();
}
}
private static String getValue(String key)
{
return p.getProperty(key);
}
private static Object getBean(String name) throws Exception{
Class<?> claz = Class.forName(name);
return claz.getConstructor(String.class).newInstance("一叶扁舟");
}
public static <T> T getBean(Class<T> claz) throws Exception{
return claz.newInstance();
}
public static <T> T getBean(String className,Class<T> claz ) throws Exception
{
Class<T> cla = (Class<T>) Class.forName(className);
return cla.newInstance();
}
public static void main(String[] args) throws Exception{
// 从资源文件中获得全限定名
/* String className = getValue("string");
Object obj = getBean(className);
System.out.println(obj);
System.out.println(className);*/
String className = getValue("date");
Class<?> claz = Class.forName(className);
Date date = (Date) claz.newInstance();
System.out.println(date);
// 使用泛型处理
System.out.println("泛型处理1:");
Date date1 = getBean(className,Date.class);
System.out.println(date1);
// 没有和配置文件连在一块
System.out.println("泛型处理2:");
System.out.println(getBean(NewInstanceDemo2.class));
}
}
//注意:这个配置文件obj.properties必须放在所建目录文件夹中的bin文件中,否则会报异常错误,这个错误本人调试了好久,上网查了很多资料,尝试了很多方法才解决了。
最多的人说的是,java的环境变量设置错误,我重新检查环境变量,并未错误。之后又将文件的路径写成文件所在的路径,也不对。所以放在bin文件夹下才对!
java 配置文件路径,反射
原文:http://blog.csdn.net/u011662320/article/details/19120405