java反射机制,java反射
分享于 点击 38354 次 点评:137
java反射机制,java反射
下面是需要用到的代码和文件
Demo_main.java
<span >package test;
public class Demo_main {
Demo_main(){
}
public void write(){
System.out.println("类的对象获取成功");
}
}</span>
Demo_class.java
<span >package test;
import java.io.IOException;
import java.lang.*;
import java.util.Properties;
import java.util.Set;
import java.util.*;
public class Demo_class {
private static Map<String,Object> objects=new HashMap<String ,Object>();
static
{
Properties cfg=new Properties();
try
{
cfg.load(Demo_class.class.getResourceAsStream("/Class_name.properties"));
Set keys=cfg.keySet();
for(Object key:keys)
{
String classname=(String )cfg.get(key);
Object Objclass=Class.forName(classname).newInstance();//这里会出现异常可以将ioexception的io去掉就行
objects.put((String)key, Objclass);
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main (String[] args)
{
Object Objclass=objects.get("Demo_key1");
System.out.println(Objclass.toString());
Demo_main a= (Demo_main)Objclass;
a.write();
}
}</span>
Class_name.properties 文件
name Demo_key1
value test.Demo_main
通过了下面这几句从配置文件获得类的名字放入一个Set容器中。
<span >Properties cfg=new Properties();</span>
<span >cfg.load(Demo_class.class.getResourceAsStream("/Class_name.properties"));
Set keys=cfg.keySet();</span>
通过下面代码得到对象Objclass<span >String classname=(String )cfg.get(key);
Object Objclass=Class.forName(classname).newInstance()</span>
通过下面代码执行<span >Object Objclass=objects.get("Demo_key1");
System.out.println(Objclass.toString());
Demo_main a= (Demo_main)Objclass;
a.write();</span>
注意在这里我是把得到的对象先放入了Hashmap中,因为你有可能在配置文件中加了多个对象,然后通过key匹配对象进行操作。通过配置文件得到对象这种方法便于了我们后期的维护。相关文章
- 暂无相关文章
用户点评