﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-小翊的java历程</title><link>http://www.blogjava.net/zmy327/</link><description>一步一个脚印</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 11:01:14 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 11:01:14 GMT</pubDate><ttl>60</ttl><item><title>设计模式之代理模式01</title><link>http://www.blogjava.net/zmy327/archive/2012/06/28/381738.html</link><dc:creator>兔小翊</dc:creator><author>兔小翊</author><pubDate>Thu, 28 Jun 2012 14:16:00 GMT</pubDate><guid>http://www.blogjava.net/zmy327/archive/2012/06/28/381738.html</guid><wfw:comment>http://www.blogjava.net/zmy327/comments/381738.html</wfw:comment><comments>http://www.blogjava.net/zmy327/archive/2012/06/28/381738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zmy327/comments/commentRss/381738.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zmy327/services/trackbacks/381738.html</trackback:ping><description><![CDATA[
 
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0, 0, 0);">设计模式之代理模式01<br />问题：如何知道一个方法的运行时间：<br />引出代理</span><span style="color: rgb(0, 0, 0);">----------------------</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">.直接在原来类上修改<br />利用System.currentTimeMillis()<br />&#8226;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;start</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Tank&nbsp;Moving<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Random().nextInt(</span><span style="color: rgb(0, 0, 0);">10000</span><span style="color: rgb(0, 0, 0);">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">&nbsp;(InterruptedException&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;end</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">time:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">(end</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">start));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br /></span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">.利用继承<br />如果不能在原来类上添加函数。则可以利用新建类继承extends原来类，重写方法，在super.方法前后加入此函数System.currentTimeMillis()<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Tank2&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;Tank{<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;start</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">.Move();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;end</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">time2:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">(end</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">start));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /></span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">.利用聚合。新建一个类B实现接口函数，B类里面有需要测试的类A的对象。相当于B是A的一个代理。实际上，第二种方法也算是一个代理<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Tank3&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;Moveable{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Tank3(Tank&nbsp;myt)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.myt</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">myt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Tank&nbsp;myt;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;start</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myt.Move();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;end</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">time3:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">(end</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">start));<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /></span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">、利用聚合实现多个代理。下面写时间代理（运行的时间）和日志代理（打印）,可以通过改变client类上代理调用顺序来改变出现的顺序<br /></span><span style="color: rgb(0, 0, 0);">-------------</span><span style="color: rgb(0, 0, 0);">&nbsp;Moveable&nbsp;.java</span><span style="color: rgb(0, 0, 0);">-------------</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;mypro.cn;<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">interface</span><span style="color: rgb(0, 0, 0);">&nbsp;Moveable&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move();<br />}<br /><br /></span><span style="color: rgb(0, 0, 0);">---------------</span><span style="color: rgb(0, 0, 0);">tank.java</span><span style="color: rgb(0, 0, 0);">-----------</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;mypro.cn;<br /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.util.Random;<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Tank&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;Moveable{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Tank&nbsp;Moving<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Random().nextInt(</span><span style="color: rgb(0, 0, 0);">10000</span><span style="color: rgb(0, 0, 0);">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">&nbsp;(InterruptedException&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: rgb(0, 0, 0);">-----------</span><span style="color: rgb(0, 0, 0);">&nbsp;TankTimeProxy.java</span><span style="color: rgb(0, 0, 0);">-------------------------</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;mypro.cn;<br /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.text.DateFormat;<br /><br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;TankTimeProxy&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;Moveable{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;TankTimeProxy(Moveable&nbsp;myt)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.myt</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">myt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Moveable&nbsp;myt;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;start</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.util.Date&nbsp;date&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;java.util.Date();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;currTime&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;DateFormat.getDateTimeInstance().format(date);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">starttime:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">currTime);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myt.Move();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">long</span><span style="color: rgb(0, 0, 0);">&nbsp;end</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.currentTimeMillis();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">time:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">(end</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">start));<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /></span><span style="color: rgb(0, 0, 0);">-------------------------</span><span style="color: rgb(0, 0, 0);">&nbsp;TankLogProxy&nbsp;.java</span><span style="color: rgb(0, 0, 0);">-------------------------------</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;mypro.cn;<br /><br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;TankLogProxy&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;Moveable{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;TankLogProxy(Moveable&nbsp;myt)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.myt</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">myt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Moveable&nbsp;myt;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Move()&nbsp;{</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">日志代理</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tank&nbsp;start</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myt.Move();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tank&nbsp;stop</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /></span><span style="color: rgb(0, 0, 0);">---------------------</span><span style="color: rgb(0, 0, 0);">&nbsp;Client&nbsp;.java</span><span style="color: rgb(0, 0, 0);">----------------------------</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;mypro.cn;<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Client&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tank&nbsp;t</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Tank();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TankTimeProxy&nbsp;ttp</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;TankTimeProxy(t);</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">先时间代理，即先包装一层时间</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TankLogProxy&nbsp;tlp</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;TankLogProxy(ttp);</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">再日志代理，最外层包装日志</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moveable&nbsp;m</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">tlp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.Move();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;<br />改变包装顺序，先包装日志，再包装时间：<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br /></span></div><img src ="http://www.blogjava.net/zmy327/aggbug/381738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zmy327/" target="_blank">兔小翊</a> 2012-06-28 22:16 <a href="http://www.blogjava.net/zmy327/archive/2012/06/28/381738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式之工厂模式：</title><link>http://www.blogjava.net/zmy327/archive/2012/06/28/381726.html</link><dc:creator>兔小翊</dc:creator><author>兔小翊</author><pubDate>Thu, 28 Jun 2012 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/zmy327/archive/2012/06/28/381726.html</guid><wfw:comment>http://www.blogjava.net/zmy327/comments/381726.html</wfw:comment><comments>http://www.blogjava.net/zmy327/archive/2012/06/28/381726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zmy327/comments/commentRss/381726.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zmy327/services/trackbacks/381726.html</trackback:ping><description><![CDATA[<p>&nbsp;</p><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0, 0, 0);">设计模式之工厂模式：<br /></span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">、&nbsp;&nbsp;&nbsp;&nbsp;掌握什么叫反射<br /></span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">、&nbsp;&nbsp;&nbsp;&nbsp;掌握class类的作用<br /></span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">、&nbsp;&nbsp;&nbsp;&nbsp;通过反射实例化对象<br /></span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">、&nbsp;&nbsp;&nbsp;&nbsp;通过反射调用类中方法的操作原理<br /></span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);">、&nbsp;&nbsp;&nbsp;&nbsp;工厂设计的改进，重点掌握其思想，程序和配置相分离<br /></span><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;fac.cn;<br /></span><span style="color: rgb(0, 0, 255);">interface</span><span style="color: rgb(0, 0, 0);">&nbsp;Fruit{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;eat();<br />}<br /></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Apple&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;Fruit{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;eat(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">吃苹果</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Orange&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;Fruit{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;eat(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">吃橘子</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Factory{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;Fruit&nbsp;getInstance(String&nbsp;className){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fruit&nbsp;f</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(className.equals(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Apple</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Apple();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(className.equals(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Orange</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Orange();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;f;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;FactoryDemo&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String&nbsp;args[]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fruit&nbsp;fruit</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">Factory.getInstance(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Apple</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fruit.eat();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />注：本程序的确实现了工厂操作。所有的问题集中在工厂操作中，因为每次只要一增加子类，则必须修改工厂。此时可以根据反射机制来完成，通过Class类来修改工厂<br />如下表即为修改的工厂类和主类<br /></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Factory{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;Fruit&nbsp;getInstance(String&nbsp;className){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fruit&nbsp;f</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">(Fruit)Class.forName(className).newInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">&nbsp;(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;f;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;FactoryDemo2&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String&nbsp;args[]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fruit&nbsp;fruit</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">Factory.getInstance(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">fac2.cn.Apple</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fruit.eat();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />注：在以上操作中，工厂类完全不用修改，但是每次操作应用时，都必须输入很长的包.类.名称，使用时很不方便。最好的方法是通过一个别名来表示这个完成的包.类名称，而且在类增加的时候，别名也可以自动增加。所以如果想要完成这样的操作，可以使用属性类配置<br /><br /></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;MyPropertiesOperate{</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">属性操作类</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Properties&nbsp;pro</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;File&nbsp;file</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;File(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">D:\\Workplace</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">File.separator</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Fruit.properties</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;MyPropertiesOperate(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pro</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Properties();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(file.exists()){</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">文件存在</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pro.loadFromXML(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;FileInputStream(file));&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">读取</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">&nbsp;(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.save();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;save(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pro.setProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Apple</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">cn3.Apple</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pro.setProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Orange</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">cn3.Orange</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pro.storeToXML(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;FileOutputStream(</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.file),</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Fruit</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">读取</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">&nbsp;(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Properties&nbsp;getProperties(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pro;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;FactoryDemo3&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String&nbsp;args[]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Properties&nbsp;myPro</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;MyPropertiesOperate().getProperties();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fruit&nbsp;fruit</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">Factory.getInstance(myPro.getProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Orange</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fruit.eat();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />注：从以上的操作代码中发现，程序通过一个配置文件，可以控制程序的执行，也就是达到了配置文件和程序相分离的目的。这个设计思想现在还在使用中，包括三大框架等。最新的设计理论，是将注释写入代码之中，让注释起到程序控制的作用。要实现此操作，则使用Annotation完成<br /><br /></span></div><p>&nbsp;</p><img src ="http://www.blogjava.net/zmy327/aggbug/381726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zmy327/" target="_blank">兔小翊</a> 2012-06-28 16:47 <a href="http://www.blogjava.net/zmy327/archive/2012/06/28/381726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Class方法摘要</title><link>http://www.blogjava.net/zmy327/archive/2012/06/23/381355.html</link><dc:creator>兔小翊</dc:creator><author>兔小翊</author><pubDate>Sat, 23 Jun 2012 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/zmy327/archive/2012/06/23/381355.html</guid><wfw:comment>http://www.blogjava.net/zmy327/comments/381355.html</wfw:comment><comments>http://www.blogjava.net/zmy327/archive/2012/06/23/381355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zmy327/comments/commentRss/381355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zmy327/services/trackbacks/381355.html</trackback:ping><description><![CDATA[<table border="1" cellspacing="0" summary="" cellpadding="3" width="100%"><br /><br /><tbody><tr class="TableHeadingColor" bgcolor="#ccccff"><br /><th colspan="2" align="left"><font size="+2"><strong>方法摘要</strong></font></th></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code><br /><table border="0" cellspacing="0" summary="" cellpadding="0"><br /><tbody><br /><tr valign="top" align="right"><br /><td nowrap=""><font size="-1"><code>&lt;U&gt; <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;? extends <br />U&gt;</code></font></td></tr></tbody></table></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#asSubclass(java.lang.Class)">asSubclass</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;U&gt; clazz)</code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 强制转换该 <br /><tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> <br />对象，以表示指定的 <font style="background-color: rgb(51, 153, 255);" color="#ffffff">class</font> <br />对象所表示的类的一个子类。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#cast(java.lang.Object)">cast</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Object.html">Object</a> obj)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将一个对象强制转换成此 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> 对象所表示的类或接口。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#desiredAssertionStatus()">desiredAssertionStatus</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果要在调用此方法时将要初始化该类，则返回将分配给该类的断言状态。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code>static <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#forName(java.lang.String)">forName</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> className)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回与带有给定字符串名的类或接口相关联的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code>static <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#forName(java.lang.String,%20boolean,%20java.lang.ClassLoader)">forName</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name, <br />boolean initialize, <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/ClassLoader.html">ClassLoader</a> loader)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用给定的类加载器，返回与带有给定字符串名的类或接口相关联的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code><br /><table border="0" cellspacing="0" summary="" cellpadding="0"><br /><tbody><br /><tr valign="top" align="right"><br /><td nowrap=""><font size="-1"><code>&lt;A extends <a title="java.lang.annotation 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/annotation/Annotation.html">Annotation</a>&gt; <br /><br />A</code></font></td></tr></tbody></table></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getAnnotation(java.lang.Class)">getAnnotation</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;A&gt; annotationClass)</code> <br /><br />          如果存在该元素的指定类型的注释，则返回这些注释，否则返回 null。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.annotation 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/annotation/Annotation.html">Annotation</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getAnnotations()">getAnnotations</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回此元素上存在的所有注释。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getCanonicalName()">getCanonicalName</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回 Java Language Specification 中所定义的底层类的规范化名称。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getClasses()">getClasses</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个包含某些 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象的数组，这些对象表示属于此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类的成员的所有公共类和接口。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/ClassLoader.html">ClassLoader</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getClassLoader()">getClassLoader</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回该类的类加载器。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getComponentType()">getComponentType</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回表示数组组件类型的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Constructor.html">Constructor</a>&lt;<a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a>&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getConstructor(java.lang.Class...)">getConstructor</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;... parameterTypes)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个 <code>Constructor</code> 对象，它反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类的指定公共构造方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Constructor.html">Constructor</a>&lt;?&gt;[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getConstructors()">getConstructors</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个包含某些 <code>Constructor</code> 对象的数组，这些对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类的所有公共构造方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.annotation 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/annotation/Annotation.html">Annotation</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredAnnotations()">getDeclaredAnnotations</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回直接存在于此元素上的所有注释。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredClasses()">getDeclaredClasses</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象的一个数组，这些对象反映声明为此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类的成员的所有类和接口。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Constructor.html">Constructor</a>&lt;<a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a>&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredConstructor(java.lang.Class...)">getDeclaredConstructor</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;... parameterTypes)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个 <code>Constructor</code> 对象，该对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口的指定构造方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Constructor.html">Constructor</a>&lt;?&gt;[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredConstructors()">getDeclaredConstructors</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回 <code>Constructor</code> 对象的一个数组，这些对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象表示的类声明的所有构造方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Field.html">Field</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredField(java.lang.String)">getDeclaredField</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个 <code>Field</code> 对象，该对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口的指定已声明字段。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Field.html">Field</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredFields()">getDeclaredFields</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回 <code>Field</code> 对象的一个数组，这些对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口所声明的所有字段。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Method.html">Method</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredMethod(java.lang.String,%20java.lang.Class...)">getDeclaredMethod</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name, <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;... parameterTypes)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个 <code>Method</code> 对象，该对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口的指定已声明方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Method.html">Method</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaredMethods()">getDeclaredMethods</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回 <code>Method</code> 对象的一个数组，这些对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象表示的类或接口声明的所有方法，包括公共、保护、默认（包）访问和私有方法，但不包括继承的方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getDeclaringClass()">getDeclaringClass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象所表示的类或接口是另一个类的成员，则返回的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象表示该对象的声明类。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getEnclosingClass()">getEnclosingClass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回底层类的立即封闭类。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Constructor.html">Constructor</a>&lt;?&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getEnclosingConstructor()">getEnclosingConstructor</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果该 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> 对象表示构造方法中的一个本地或匿名类，则返回 <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Constructor.html"><code>Constructor</code></a> <br />对象，它表示底层类的立即封闭构造方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Method.html">Method</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getEnclosingMethod()">getEnclosingMethod</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果此 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> 对象表示某一方法中的一个本地或匿名类，则返回 <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Method.html"><code>Method</code></a> <br />对象，它表示底层类的立即封闭方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getEnumConstants()">getEnumConstants</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果此 <font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font> 对象不表示枚举类型，则返回枚举类的元素或 null。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Field.html">Field</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getField(java.lang.String)">getField</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个 <code>Field</code> 对象，它反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口的指定公共成员字段。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Field.html">Field</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getFields()">getFields</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个包含某些 <code>Field</code> 对象的数组，这些对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口的所有可访问公共字段。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Type.html">Type</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getGenericInterfaces()">getGenericInterfaces</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回表示某些接口的 <tt>Type</tt>，这些接口由此对象所表示的类或接口直接实现。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Type.html">Type</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getGenericSuperclass()">getGenericSuperclass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回表示此 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> 所表示的实体（类、接口、基本类型或 void）的直接超类的 <br /><tt>Type</tt>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getInterfaces()">getInterfaces</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定此对象所表示的类或接口实现的接口。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Method.html">Method</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getMethod(java.lang.String,%20java.lang.Class...)">getMethod</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name, <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt;... parameterTypes)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个 <code>Method</code> 对象，它反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口的指定公共成员方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/Method.html">Method</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getMethods()">getMethods</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回一个包含某些 <code>Method</code> 对象的数组，这些对象反映此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口（包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口）的公共 <em>member</em> 方法。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> int</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getModifiers()">getModifiers</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回此类或接口以整数编码的 Java 语言修饰符。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getName()">getName</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以 <tt>String</tt> 的形式返回此 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> <br />对象所表示的实体（类、接口、数组类、基本类型或 void）名称。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Package.html">Package</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getPackage()">getPackage</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获取此类的包。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.security 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/security/ProtectionDomain.html">ProtectionDomain</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getProtectionDomain()">getProtectionDomain</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回该类的 <code>ProtectionDomain</code>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.net 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/net/URL.html">URL</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getResource(java.lang.String)">getResource</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找带有给定名称的资源。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.io 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/io/InputStream.html">InputStream</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getResourceAsStream(java.lang.String)">getResourceAsStream</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a> name)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找具有给定名称的资源。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Object.html">Object</a>[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getSigners()">getSigners</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获取此类的标记。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getSimpleName()">getSimpleName</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回源代码中给出的底层类的简称。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;? super <a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a>&gt;</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getSuperclass()">getSuperclass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回表示此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 所表示的实体（类、接口、基本类型或 void）的超类的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang.reflect 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/reflect/TypeVariable.html">TypeVariable</a>&lt;<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;<a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a>&gt;&gt;[]</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#getTypeParameters()">getTypeParameters</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 按声明顺序返回 <tt>TypeVariable</tt> 对象的一个数组，这些对象表示用此 <br /><tt>GenericDeclaration</tt> 对象所表示的常规声明来声明的类型变量。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isAnnotation()">isAnnotation</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果此 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> 对象表示一个注释类型则返回 true。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isAnnotationPresent(java.lang.Class)">isAnnotationPresent</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;? extends <a title="java.lang.annotation 中的接口" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/annotation/Annotation.html">Annotation</a>&gt; annotationClass)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果指定类型的注释存在于此元素上，则返回 true，否则返回 false。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isAnonymousClass()">isAnonymousClass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当且仅当底层类是匿名类时返回 <tt>true</tt>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isArray()">isArray</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 判定此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象是否表示一个数组类。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isAssignableFrom(java.lang.Class)">isAssignableFrom</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html"><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></a>&lt;?&gt; cls)</code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 判定此 <br /><code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />对象所表示的类或接口与指定的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 参数所表示的类或接口是否相同，或是否是其超类或超接口。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isEnum()">isEnum</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当且仅当该类声明为源代码中的枚举时返回 true。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isInstance(java.lang.Object)">isInstance</a></strong>(<a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Object.html">Object</a> obj)</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 判定指定的 <code>Object</code> 是否与此 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> <br />所表示的对象赋值兼容。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isInterface()">isInterface</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 判定指定的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象是否表示一个接口类型。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isLocalClass()">isLocalClass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当且仅当底层类是本地类时返回 <tt>true</tt>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isMemberClass()">isMemberClass</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当且仅当底层类是成员类时返回 <tt>true</tt>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isPrimitive()">isPrimitive</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 判定指定的 <code><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></code> 对象是否表示一个基本类型。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> boolean</code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#isSynthetic()">isSynthetic</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果此类是复合类，则返回 <tt>true</tt>，否则 <tt>false</tt>。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="Class 中的类型参数" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html">T</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#newInstance()">newInstance</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建此 <tt><font style="background-color: rgb(51, 153, 255);" color="#ffffff">Class</font></tt> 对象所表示的类的一个新实例。</td></tr><br /><tr class="TableRowColor" bgcolor="white"><br /><td valign="top" width="1%" align="right"><font size="-1"><code> <a title="java.lang 中的类" href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/String.html">String</a></code></font></td><br /><td><code><strong><a href="mk:@MSITStore:E:\工作网新\JDK6API中文参考.chm::/java/lang/Class.html#toString()">toString</a></strong>()</code> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将对象转换为字符串。</td></tr></tbody><br /></table><img src ="http://www.blogjava.net/zmy327/aggbug/381355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zmy327/" target="_blank">兔小翊</a> 2012-06-23 17:07 <a href="http://www.blogjava.net/zmy327/archive/2012/06/23/381355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>