Java反射 配置文件 工厂方法综合实例

Java反射配置文件工厂方法综合实例

配置文件读取类:

package hyhref;

 

import java.io.File;

import java.io.IOException;

 

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

importjavax.xml.soap.Node;

 

import org.w3c.dom.Document;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;

 

publicclassReadXml {

   publicstatic Object GetXmlObject(){

       Objecto=null;

       DocumentBuilderFactory  factory=DocumentBuilderFactory.newInstance();//单例模式

       try {

           DocumentBuilderbuilder=factory.newDocumentBuilder();

           Documentdoc=builder.parse(new File("src\\hyhref\\NewFile.xml")); //加载文档(具体的目录请自行修改)

           

           NodeListn1=doc.getElementsByTagName("node"); //得到文档下的 node节点

           org.w3c.dom.Nodeclassnode=  n1.item(0).getFirstChild();//获取node中的第一个节点

           Stringname=classnode.getNodeValue();  //获取节点的数据

           Class<?>opera=Class.forName("hyhref."+name); //从配置文件加载类

           o=opera.newInstance();  //实例化

       }catch(ParserConfigurationException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       }catch(SAXException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       }catch(IOException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       }

       finally{

           return o;

       }

   }

}

 

配置文件:

<?xmlversion="1.0"encoding="UTF-8"?>

<Result>

   <node>IOperationSub</node>

</Result>

 

工厂方法源代码:

http://www.worlduc.com/blog.aspx?bid=4023675

 

 

主类:

 

publicstaticvoidmain(String[] args) {

       //TODO Auto-generated method stub

       try {

            IOperation factory=(IOperation)ReadXml.GetXmlObject();//从配置文件动态加载一个类

            Operation oper=factory.CreateOperation();

            oper.numA=100;

            oper.numB=200;

            System.out.println(oper.GetResult());

           }catch(Throwable e) {

           System.err.println(e);

           }

 

   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值