Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  java  >  正文 一个利用java反射机制的例子

一个利用java反射机制的例子

发布时间:2018-11-03   编辑:www.jquerycn.cn
jquery中文网为您提供一个利用java反射机制的例子等资源,欢迎您收藏本站,我们将为您提供最新的一个利用java反射机制的例子资源

    前一阵写了一篇“用策略模式操作数据库”的文章,一直想用反射机制实现一个测试的类, 今天终于能抽出点空,就写了一个,不过还没有实现把反射的类变量写在xml文件中,这只好下回有空再写了,呵呵

 



<span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> com;

</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.lang.reflect.Constructor;
</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.Map;
</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.HashMap;

</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Test </span><span id="_119_713_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_119_713_Open_Text"><span style="COLOR: #000000">{
  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span id="_162_711_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_162_711_Open_Text"><span style="COLOR: #000000">{
    DataBaseContext dbc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> DataBaseContext();
    DataBaseSuper dbs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;
    Map map </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> HashMap();
    map.put(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">丁丁</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);
    map.put(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">age</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);
    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="_331_561_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_331_561_Open_Text"><span style="COLOR: #000000">{
      </span><span id="_339_355_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="_339_355_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000">*具体的反射实现过程**</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000">
      Class cls </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Class.forName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">com.Insert</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);
      Class partype</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Class.forName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">java.util.Map</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);
      Constructor ct </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> cls.getConstructor(partype);
      dbs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (DataBaseSuper) ct.newInstance(map);
    }</span></span><span style="COLOR: #000000">
    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (Throwable ex) </span><span id="_588_624_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_588_624_Open_Text"><span style="COLOR: #000000">{
      System.err.println(ex);
    }</span></span><span style="COLOR: #000000">
    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (dbs </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span id="_647_707_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_647_707_Open_Text"><span style="COLOR: #000000">{
      dbc.setOperate(dbs);
      dbc.excuteOperate();
    }</span></span><span style="COLOR: #000000">
  }</span></span><span style="COLOR: #000000">
}</span></span>

[关闭]