﻿<?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-再一次也好</title><link>http://www.blogjava.net/xujun7/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 01:19:36 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 01:19:36 GMT</pubDate><ttl>60</ttl><item><title>EJB与JavaBean的区别</title><link>http://www.blogjava.net/xujun7/archive/2010/05/24/321739.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Mon, 24 May 2010 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/24/321739.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/321739.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/24/321739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/321739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/321739.html</trackback:ping><description><![CDATA[EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了<br />
<br />
1.EJB用于服务端应用开发, 而JavaBeans用于客户端应用开发<br />
也可以使用JavaBeans进行服务端应用开发，但JavaBeans模型没有提供服务框架，当应用需要使用系统级服务（如事务管理,安全性,生命周期管理等）时，不适合。<br />
<br />
2.EJB构件是可部署的,EJB构件可以作为独立的单元被部署到EJB应用服务器上，是应用构件（application components）,而JavaBeans构件是不可部署的, JavaBeans构件是开发构件，不能被部署为独立的单元。<br />
<br />
3.EJB构件是部署可定制的,使用部署描述符可以在部署EJB时对其运行时配置进行定制,而JavaBeans构件在部署时不能进行定制,JavaBeans构件的定制仅发生在开发阶段,只能利用开发工具创建并组装JavaBeans构件，部署时不能定制<br />
<br />
4.EJB构件是分布式对象,可以被客户应用或者其它EJB构件进行远程访问,而JavaBeans构件不是分布式对象,JavaBeans构件只能在其构成的应用中使用,不能提供远程访问能力<br />
<br />
5.EJB构件对终端用户不可见,运行在服务端，没有人机交互界面,而部分JavaBeans构件对终端用户可见,如GUI应用中使用的按钮构件
<img src ="http://www.blogjava.net/xujun7/aggbug/321739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-24 16:08 <a href="http://www.blogjava.net/xujun7/archive/2010/05/24/321739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Java学习笔记 对象和类</title><link>http://www.blogjava.net/xujun7/archive/2010/05/17/321190.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Mon, 17 May 2010 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/17/321190.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/321190.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/17/321190.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/321190.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/321190.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">任何对象变量的值都是对一个对象的引用。</span></p>
<p><span style="font-family: 宋体">显示参数和隐式参数。</span></p>
<p>class Employee</p>
<p>{</p>
<p>&nbsp;&nbsp; . . .</p>
<p>&nbsp;&nbsp; private final String name;</p>
<p>}</p>
<p>private final Date hiredate;</p>
<p>final<span style="font-family: 宋体">应用于基本数据类型，表示值不可变，应用于类对象，表示对象的引用不可变。</span></p>
<p><span style="font-family: 宋体">一个引用不能改变作为参数的基本类型数据，但能改变对象，因为传入的参数是对象的引用，不能改变对象引用。</span></p>
<p>main()<span style="font-family: 宋体">是一个程序执行的入口，系统必须先进入这个入口，也就是先要调用</span>main()<span style="font-family: 宋体">函数，才能继续程序的执行，如果</span>main()<span style="font-family: 宋体">不用</span>static<span style="font-family: 宋体">修饰，系统就没法进行调用，因为一开始系统不能创建任何对象。而加上了</span>static<span style="font-family: 宋体">后，系统就可以直接调用</span>main()<span style="font-family: 宋体">函数了，从而继续程序的执行。</span>&nbsp;</p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">public static void swap(Employee x, Employee y) // doesn't work</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; Employee temp = x;</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; x = y;</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; y = temp;</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">Employee a = new Employee("Alice", . . .);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">Employee b = new Employee("Bob", . . .);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">swap(a, b);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">a,b</span><span style="font-size: 10.5pt">的引用没有改变。</span></pre>
<pre>&nbsp;</pre>
<pre><span style="font-size: 10.5pt">一个方法不能改变一个基本类型的参数</span></pre>
<pre><span style="font-size: 10.5pt">一个方法可以改变一个对象参数的状态</span></pre>
<pre><span style="font-size: 10.5pt">一个方法不能让对象参数引用一个新对象</span></pre>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/xujun7/swap.JPG" width="430" height="376" /></div>
</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 宋体">默认值：数值为</span>0<span style="font-family: 宋体">，对象为</span>null<span style="font-family: 宋体">，布尔型为</span>false</p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">public Employee(String name, double salary)</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; this.name = name;</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; this.salary = salary;</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<p style="text-align: left" class="MsoNormal" align="left">This<span style="font-family: 宋体">指示隐式参数，即被构造的类对象。</span></p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">public Employee(double s)</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; // calls Employee(String, double)</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; this("Employee #" + nextId, s);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; nextId++;</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<p style="text-align: left" class="MsoNormal" align="left">This<span style="font-family: 宋体">将调用同一个类的另一个构造函数。</span></p>
<pre><span style="font-size: 10.5pt">初始化块</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">// static initialization block</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">static</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; Random generator = new Random();</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; nextId = generator.nextInt(10000);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 宋体">可以为任何一个类添加</span>finalize<span style="font-family: 宋体">方法，</span>finalize<span style="font-family: 宋体">方法将在垃圾回收器清除对象之前被调用。因为某些对象使用了内存之外的其他资源，如文件。</span></p>
<img src ="http://www.blogjava.net/xujun7/aggbug/321190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-17 16:27 <a href="http://www.blogjava.net/xujun7/archive/2010/05/17/321190.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Java学习笔记 内部类</title><link>http://www.blogjava.net/xujun7/archive/2010/05/16/321112.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Sun, 16 May 2010 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/16/321112.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/321112.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/16/321112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/321112.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/321112.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">内部类是定义在一个类内部的类。</span></p>
<p><span style="font-family: 宋体">内部类方法可以访问该类定义所在的作用域的数据，包括私有数据。</span></p>
<p><span style="font-family: 宋体">内部类对同一包中的其他类不可见。</span></p>
<p><span style="font-family: 宋体">使用内部类定义回调函数可以避免写大量代码。</span></p>
<p>class TalkingClock</p>
<p>{</p>
<p>&nbsp;&nbsp; public TalkingClock(int interval, boolean beep) { . . . }</p>
<p>&nbsp;&nbsp; public void start() { . . . }</p>
<p>&nbsp;&nbsp; private int interval;</p>
<p>&nbsp;&nbsp; private boolean beep;</p>
<p>&nbsp;&nbsp; private class TimePrinter implements ActionListener</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // an inner class</p>
<p>&nbsp;&nbsp; {</p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date now = new Date();</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("At the tone, the time is " + now);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (beep) Toolkit.getDefaultToolkit().beep();</span></pre>
<p>&nbsp;&nbsp; }</p>
<p>}</p>
<p><span style="font-family: 宋体">内部类既可以访问自身的数据域，也可以访问创建它的外围类对象的数据域。内部类有一个隐式引用，其指向外围类对象。<br />
<br />
<div align="center"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/xujun7/referenceouter.JPG" /></div>
<br />
</span></p>
<p>public void actionPerformed(ActionEvent event)</p>
<p>{&nbsp;</p>
<p>&nbsp;&nbsp; Date now = new Date();</p>
<p>&nbsp;&nbsp; System.out.println("At the tone, the time is " + now);</p>
<p>&nbsp;&nbsp; if (<strong>outer.</strong>beep) Toolkit.getDefaultToolkit().beep();</p>
<p>}</p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 宋体">内部类的默认构造函数</span></p>
<p>public TimePrinter(TalkingClock clock) // automatically generated code<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outer&nbsp;= clock;<br />
}</p>
<p><span style="font-family: 宋体">局部内部类，不能用</span>private<span style="font-family: 宋体">和</span>public<span style="font-family: 宋体">声明，</span>start<span style="font-family: 宋体">方法都不能访问它。</span></p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">public void start()</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; <strong>class TimePrinter implements ActionListener</strong></span></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; {</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void actionPerformed(ActionEvent event)</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date now = new Date();</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("At the tone, the time is " + now);</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (beep) Toolkit.getDefaultToolkit().beep();</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; }</span></strong></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; ActionListener listener = new TimePrinter();</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; Timer t = new Timer(1000, listener);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; t.start();</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<p><span style="font-family: 宋体">匿名内部类</span></p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">public void start(int interval, final boolean beep)</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; ActionListener listener = new</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>ActionListener()</strong></span></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;public void actionPerformed(ActionEvent event)</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date now = new Date();</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("At the tone, the time is " + now);</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (beep) Toolkit.getDefaultToolkit().beep();</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></pre>
<pre><strong><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</span></strong></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; Timer t = new Timer(1000, listener);</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; t.start();</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<p><span style="font-family: 宋体">匿名构造了不能有构造函数，而是把构造函数参数传递给超类构造函数，</span></p>
<p>new&nbsp;SuperType(construction&nbsp;parameters)<br />
{<br />
&nbsp;&nbsp;&nbsp;inner&nbsp;class&nbsp;methods&nbsp;and&nbsp;data<br />
}</p>
<p><tt><span style="font-size: 12pt">内部类实现接口时，不能有任何参数</span></tt></p>
<p>new&nbsp;InterfaceType() {&nbsp;methods&nbsp;and&nbsp;data&nbsp;}</p>
<p><span style="font-family: 宋体">静态内部类</span></p>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">class ArrayAlg</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">{</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; public static class Pair</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; {</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . . .</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; }</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">&nbsp;&nbsp; . . .</span></pre>
<pre><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">}</span></pre>
<p><span style="font-family: 宋体">静态内部类对象除了没有对生产它的外部类对象的引用特权外，与其他的内部类完全一样。</span></p>
<img src ="http://www.blogjava.net/xujun7/aggbug/321112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-16 21:26 <a href="http://www.blogjava.net/xujun7/archive/2010/05/16/321112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java基础笔试题</title><link>http://www.blogjava.net/xujun7/archive/2010/05/16/321102.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Sun, 16 May 2010 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/16/321102.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/321102.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/16/321102.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/321102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/321102.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;1、作用域public,private,protected,以及不写时的区别答：区别如下：作用域&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当前类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同一package&nbsp; 子孙类&nbsp;&nbsp;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/xujun7/archive/2010/05/16/321102.html'>阅读全文</a><img src ="http://www.blogjava.net/xujun7/aggbug/321102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-16 17:47 <a href="http://www.blogjava.net/xujun7/archive/2010/05/16/321102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Java学习笔记 异常</title><link>http://www.blogjava.net/xujun7/archive/2010/05/16/321101.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Sun, 16 May 2010 09:40:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/16/321101.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/321101.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/16/321101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/321101.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/321101.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">所有的异常都是由</span>Throwable<span style="font-family: 宋体">类继承而来的，分为</span>Error<span style="font-family: 宋体">和</span>Exception<span style="font-family: 宋体">，</span>Error<span style="font-family: 宋体">类层次结构描述了</span>Java<span style="font-family: 宋体">运行时系统的内部错误和资源耗尽错误。</span>Exception<span style="font-family: 宋体">分为</span>RuntimeException<span style="font-family: 宋体">和</span>IOException<span style="font-family: 宋体">。由程序错误导致的异常属于</span>RuntimeException<span style="font-family: 宋体">。</span></p>
<p>
<div align="center"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/xujun7/exception.JPG" width="487" height="249" /></div>
<br />
The rule "If it is a RuntimeException, it was your fault"</p>
<p><span style="font-family: 宋体">一个方法必须声明所有可能抛出的已检查异常，而未检查异常要么不可控制</span>(Error)<span style="font-family: 宋体">，要么就应该避免</span>(RuntimeException)</p>
<p><span style="font-family: 宋体">如果超类方法没有抛出异常，则子类方法也不能抛出任何异常。子类方法抛出的异常不能超过超类声明的范围。</span></p>
<img src ="http://www.blogjava.net/xujun7/aggbug/321101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-16 17:40 <a href="http://www.blogjava.net/xujun7/archive/2010/05/16/321101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML</title><link>http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Wed, 12 May 2010 12:03:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/320739.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/320739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/320739.html</trackback:ping><description><![CDATA[&nbsp;
<p>XML<span style="font-family: 宋体">的优势：自描述，格式扩展性强，允许嵌套</span></p>
<p><span style="font-family: 宋体">子元素和属性的区别，属性是隐式的，不出现在文档中。</span></p>
<p>Xmlns<span style="font-family: 宋体">名字空间</span></p>
<p>CDATA<span style="font-family: 宋体">用于对正常文本的处理。</span></p>
<p>XML<span style="font-family: 宋体">模式定义语言：</span>DTD<span style="font-family: 宋体">和</span>XML Schema</p>
<p>XML Schema<span style="font-family: 宋体">事实上也是</span>XML<span style="font-family: 宋体">的一种应用，也就是说</span>XML Schema<span style="font-family: 宋体">的格式与</span>XML<span style="font-family: 宋体">的格式是完全相同的，而作为</span>SGML DTD<span style="font-family: 宋体">的一个子集，</span>XML DTD<span style="font-family: 宋体">具有着与</span>XML<span style="font-family: 宋体">格式完全不同的格式。这种区别会给</span>XML Schema<span style="font-family: 宋体">的使用带来许多好处：</span></p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">由于</span>XML Schema<span style="font-family: 宋体">本身也是一种</span>XML<span style="font-family: 宋体">，所以许多的</span>XML<span style="font-family: 宋体">编辑工具、</span>API <span style="font-family: 宋体">开发包、</span>XML<span style="font-family: 宋体">语法分析器可以直接的应用到</span>XML Schema<span style="font-family: 宋体">，而不需要修改。</span> </p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">作为</span>XML<span style="font-family: 宋体">的一个应用，</span>XML Schema<span style="font-family: 宋体">理所当然的继承了</span>XML<span style="font-family: 宋体">的自描述性和可扩展性，这使得</span>XML Schema <span style="font-family: 宋体">更具有可读性和灵活性。</span> </p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">由于格式完全与</span>XML<span style="font-family: 宋体">一样，</span>XML Schema<span style="font-family: 宋体">除了可以像</span>XML<span style="font-family: 宋体">一样处理外，也可以同它所描述的</span>XML<span style="font-family: 宋体">文档以同样的方式存储在一起，方便管理。</span> </p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XML Schema<span style="font-family: 宋体">与</span>XML<span style="font-family: 宋体">格式的一致性，使得以</span>XML<span style="font-family: 宋体">为数据交换的应用系统之间，也可以方便的进行模式交换。</span> </p>
<p>XML Schema<span style="font-family: 宋体">则不同，它内置了三十七种数据类型，如</span>long<span style="font-family: 宋体">，</span>int<span style="font-family: 宋体">，</span>short<span style="font-family: 宋体">，</span>double<span style="font-family: 宋体">等常用的数据类型，</span>XML Schema<span style="font-family: 宋体">数据类型的真正灵活性来自于其对用户自定义类型的支持。使用</span>complexType<span style="font-family: 宋体">和</span>sequence<span style="font-family: 宋体">构造复杂类型。</span></p>
<p>DTD<span style="font-family: 宋体">：限制并归类文档中的信息，并不限制基本类型意义上的类型，只限制元素子元素很属性的出现。是有关一个元素中可以出现何种模式的子元素的一系列规则。</span>|<span style="font-family: 宋体">表示或，</span>+<span style="font-family: 宋体">表示一个或多个，</span>*<span style="font-family: 宋体">表示零个或多个，？表示零个或一个。</span></p>
<p>DTD</p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">单个文本元素和属性不能定义，不能定于为整数。</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">只能指定一个无序的集合，很难指定每个标签只出现一次</span></p>
<p>XML Schema<span style="font-family: 宋体">可以用</span>minOccurs<span style="font-family: 宋体">和</span>maxOccurs<span style="font-family: 宋体">指定某个子元素出现的最多和最少次数。</span></p>
<p>XML Schema<span style="font-family: 宋体">较</span>DTD<span style="font-family: 宋体">的优势：</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许把元素中出现的文本限制为专门类型</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许创建用户自定义类型</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许唯一性和外键约束</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">与名字空间结合以允许文档遵从不同模式</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">5.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许使用继承来扩展复杂类型</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">6.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许使用专门类型来对类型进行限制，最大最小值</span></p>
<p>XML<span style="font-family: 宋体">查询转换工具：</span>XPath<span style="font-family: 宋体">，</span>XQuery<span style="font-family: 宋体">，</span>XSLT</p>
<p>XPath<span style="font-family: 宋体">是基于路径表达式的语言，</span>FLWOR<span style="font-family: 宋体">表达式</span></p>
<p>XQuery<span style="font-family: 宋体">仿照</span>SQL</p>
<p>XSLT(XSL Transformation)<span style="font-family: 宋体">是由</span>XSL(XML Stylesheet Language)<span style="font-family: 宋体">扩展而来的</span></p>
<p>#PCDATA<span style="font-family: 宋体">表示文本数据，</span>empty<span style="font-family: 宋体">表示没有内容，</span>any<span style="font-family: 宋体">表示任意。</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;?xml version="1.0"?&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!DOCTYPE note [</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT note (to,from,heading,body)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT to (#PCDATA)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT from (#PCDATA)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT heading (#PCDATA)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT body (#PCDATA)&gt;</span></p>
<p><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">]&gt;</span></p>
<img src ="http://www.blogjava.net/xujun7/aggbug/320739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-12 20:03 <a href="http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core Java学习笔记 集合</title><link>http://www.blogjava.net/xujun7/archive/2010/05/12/320720.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Wed, 12 May 2010 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/12/320720.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/320720.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/12/320720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/320720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/320720.html</trackback:ping><description><![CDATA[&nbsp;
<p>Collection是集合类的上级接口，继承与他的接口主要有Set 和List.<br />
Collections是针对集合类的一个帮助类，他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。<br />
<br />
Java<span style="font-family: 宋体">类库中用于集合类的基本接口是</span>Collection<span style="font-family: 宋体">接口。</span>Collection<span style="font-family: 宋体">接口扩展自</span>Iterable<span style="font-family: 宋体">接口，因此，可以在任何集合类中使用</span>for each<span style="font-family: 宋体">循环。</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">interface</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> <span style="background: lightgrey">Iterable</span>&lt;T&gt; {</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp; Iterator&lt;T&gt; iterator();</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">}</span></p>
<p><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">interface</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Collection&lt;E&gt; </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">extends</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Iterable&lt;E&gt;</span></p>
<p>Collection<span style="font-family: 宋体">和</span>Iterator<span style="font-family: 宋体">是泛型接口，任何集合都可以使用其方法。</span>Collection<span style="font-family: 宋体">接口中的方法：</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">public static &lt;E&gt; boolean contains(Collection&lt;E&gt; c, Object obj)</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">{&nbsp;</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp; for (E element : c)</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (element.equals(obj))</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp; return false;</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">}</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">iterator</span><span style="font-family: 宋体; color: black; font-size: 10pt">方法返回一个实现了</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">Iterator</span><span style="font-family: 宋体; color: black; font-size: 10pt">接口的对象。</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">interface</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Iterator&lt;E&gt; {</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">boolean</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> hasNext();</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp; E next();</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">void</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> remove();</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">}</span></p>
<p>Java<span style="font-family: 宋体">集合类库将接口与实现分离，</span>Queue</p>
<p><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">abstract</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">class</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> AbstractCollection&lt;E&gt; </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">implements</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Collection&lt;E&gt;</span></p>
<p><span style="font-family: 宋体">一个集合类可以从</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">AbstractCollection</span><span style="font-family: 宋体; color: black; font-size: 10pt">类扩展</span></p>
<p><span style="font-family: 宋体">除了</span>Map<span style="font-family: 宋体">结尾的类，其他类都实现了</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">Collection</span><span style="font-family: 宋体; color: black; font-size: 10pt">接口。</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">ArrayList</span><span style="font-family: 宋体; color: black; font-size: 10pt">动态数组</span></p>
<p style="margin: 0cm 0cm 0pt" class="a1"><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">ArrayList</span><span style="font-size: 10.5pt">的内部实现是基于内部数组</span><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">Object[]</span><span style="font-size: 10.5pt">，所以从概念上讲，它更像数组，但</span><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">LinkedList</span><span style="font-size: 10.5pt">的内部实现是基于一组连接的记录，所以，它更像一个链表结构。</span></p>
<p style="margin: 0cm 0cm 0pt" class="a1"><span style="font-size: 10.5pt">在</span><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">ArrayList</span><span style="font-size: 10.5pt">的前面或中间插入数据时，必须将其后的所有数据相应的后移，这样必然要花费较多时间，所以，当你的操作是在一列数据的后面添加数据而不是在前面或中间，并且需要随机地访问其中的元素时，使用</span><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">ArrayList</span><span style="font-size: 10.5pt">会提供比较好的性能；</span></p>
<p style="margin: 0cm 0cm 0pt" class="a1"><span style="font-size: 10.5pt">而访问链表中的某个元素时，就必须从链表的一端开始沿着连接方向一个一个元素地去查找，直到找到所需的元素为止，所以，当你的操作是在一列数据的前面或中间添加或删除数据，并且按照顺序访问其中的元素时，就应该使用</span><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">LinkedList</span><span style="font-size: 10.5pt">了。</span></p>
<p style="margin: 0cm 0cm 0pt" class="a1"><span style="font-size: 10.5pt">如果在编程中，两种情形交替出现，这时，可以考虑使用</span><span style="font-family: 'Calibri', 'sans-serif'; font-size: 10.5pt">List</span><span style="font-size: 10.5pt">这样的通用接口，而不用关心具体的实现，在具体的情形下，它的性能由具体的实现来保证。</span></p>
<p>Java<span style="font-family: 宋体">中每个链表实际上是双重链表。链表是有序的。</span>List<span style="font-family: 宋体">接口和实现了该接口的</span>LinkedList<span style="font-family: 宋体">类。</span></p>
<pre><span style="font-family: 'Courier New'; color: black; font-size: 10pt">interface ListIterator&lt;E&gt; extends Iterator&lt;E&gt;</span></pre>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">ListIterator</span><span style="font-family: 宋体; color: black; font-size: 10pt">中的</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">add</span><span style="font-family: 宋体; color: black; font-size: 10pt">方法，添加元素在迭代器之前，</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">remove</span><span style="font-family: 宋体; color: black; font-size: 10pt">方法删除上一个被访问的元素。</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">Set</span><span style="font-family: 宋体; color: black; font-size: 10pt">方法取代使用</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">next</span><span style="font-family: 宋体; color: black; font-size: 10pt">或</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">previous</span><span style="font-family: 宋体; color: black; font-size: 10pt">方法最后访问的元素。</span></p>
<p>ArrayList<span style="font-family: 宋体">封装了一个动态重新分配的数组。</span></p>
<p>Vector<span style="font-family: 宋体">类的所有方法都是同步的。可以用两个线程安全地访问</span>Vector<span style="font-family: 宋体">对象。代码会在同步操作上浪费相当多的时间。</span>ArrayList<span style="font-family: 宋体">类的方法不是同步的。</span></p>
<p>hashCode()<span style="font-family: 宋体">方法必须和</span>equals<span style="font-family: 宋体">方法相兼容。如果</span>a.equals(b)<span style="font-family: 宋体">为</span>ture,<span style="font-family: 宋体">则</span>a<span style="font-family: 宋体">和</span>b<span style="font-family: 宋体">必有相同的散列码。散列吗是通过对象实例字段产生的整数。</span></p>
<p>TreeSet<span style="font-family: 宋体">是一个有序集合，插入时可以是任意顺序，输出时为排序后的顺序。红黑树。默认情况下，</span>TreeSet<span style="font-family: 宋体">假设你插入的元素实现了</span>Comparable<span style="font-family: 宋体">接口。</span></p>
<p><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">interface</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Comparable&lt;T&gt; {</span></p>
<p style="text-align: left" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">int</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> compareTo(T o);</span></p>
<p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">}</span></p>
<p>PriorityQueue<span style="font-family: 宋体">是一种能够在以任意顺序插入元素后，再按排序顺序读取这些元素的数据结构。优先级队列和</span>TreeSet<span style="font-family: 宋体">一样，其所持有的元素可以是实现了</span>Comparable<span style="font-family: 宋体">接口的类的对象，也可以是在构造器中提供的</span>Comparator<span style="font-family: 宋体">对象。</span></p>
<p>HashMap<span style="font-family: 宋体">和</span>TreeMap<span style="font-family: 宋体">都实现了</span>Map<span style="font-family: 宋体">接口，映射表用于存放键</span>/<span style="font-family: 宋体">值对。</span></p>
<p>HashSet<span style="font-family: 宋体">类，实现了基于散列表的散列集。不存在重复元素的集合。</span></p>
<p><span style="font-family: 宋体">散列映射表用于对键进行散列，树状映射表对于键的全局顺序进行排序，并组成搜索树。<br />
<div align="center"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/xujun7/collection.JPG" width="522" height="298" /></div>
<br />
<br />
</span>
<p>&nbsp;</p>
<p><span style="font-family: 宋体">框架就是一个类集合，它形成了创建高级功能的基础。框架包含许多超类，这些超类拥有非常有用的功能、策略和机制。框架用户建立的子类可以扩展类的功能，而不是重新创建基本的机制。</span></p>
<p><span style="font-family: 宋体">两个用于集合的基本接口，</span>Collection<span style="font-family: 宋体">和</span>Map<span style="font-family: 宋体">。</span></p>
<p>Set<span style="font-family: 宋体">接口和</span>Collection<span style="font-family: 宋体">接口，</span>Set<span style="font-family: 宋体">不允许有重复元素。</span>List<span style="font-family: 宋体">接口提供随机访问的方法，</span>ArrayList<span style="font-family: 宋体">和</span>LiknkedList<span style="font-family: 宋体">的访问算法效率是不同的。</span></p>
<div align="center"><img style="width: 573px; height: 361px" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/xujun7/Classescollections.JPG" width="573" height="361" /></div>
<br />
<img src ="http://www.blogjava.net/xujun7/aggbug/320720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-12 17:03 <a href="http://www.blogjava.net/xujun7/archive/2010/05/12/320720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse插件开发学习笔记 图像管理</title><link>http://www.blogjava.net/xujun7/archive/2009/07/31/289256.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Fri, 31 Jul 2009 05:51:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2009/07/31/289256.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/289256.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2009/07/31/289256.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/289256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/289256.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math" />
<m:brkBin m:val="before" />
<m:brkBinSub m:val="--" />
<m:smallFrac m:val="off" />
<m:dispDef/>
<m:lMargin m:val="0" />
<m:rMargin m:val="0" />
<m:defJc m:val="centerGroup" />
<m:wrapIndent m:val="1440" />
<m:intLim m:val="subSup" />
<m:naryLim m:val="undOvr" />
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267">
<w:LsdException locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal" />
<w:LsdException locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 2" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 3" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 4" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 5" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 6" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 7" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 8" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 9" />
<w:LsdException locked="false" priority="39" name="toc 1" />
<w:LsdException locked="false" priority="39" name="toc 2" />
<w:LsdException locked="false" priority="39" name="toc 3" />
<w:LsdException locked="false" priority="39" name="toc 4" />
<w:LsdException locked="false" priority="39" name="toc 5" />
<w:LsdException locked="false" priority="39" name="toc 6" />
<w:LsdException locked="false" priority="39" name="toc 7" />
<w:LsdException locked="false" priority="39" name="toc 8" />
<w:LsdException locked="false" priority="39" name="toc 9" />
<w:LsdException locked="false" priority="35" qformat="true" name="caption" />
<w:LsdException locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title" />
<w:LsdException locked="false" priority="1" name="Default Paragraph Font" />
<w:LsdException locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle" />
<w:LsdException locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong" />
<w:LsdException locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis" />
<w:LsdException locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid" />
<w:LsdException locked="false" unhidewhenused="false" name="Placeholder Text" />
<w:LsdException locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1" />
<w:LsdException locked="false" unhidewhenused="false" name="Revision" />
<w:LsdException locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph" />
<w:LsdException locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote" />
<w:LsdException locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6" />
<w:LsdException locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis" />
<w:LsdException locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis" />
<w:LsdException locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference" />
<w:LsdException locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference" />
<w:LsdException locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title" />
<w:LsdException locked="false" priority="37" name="Bibliography" />
<w:LsdException locked="false" priority="39" qformat="true" name="TOC Heading" />
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
</style>
<![endif]-->
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Image</span><span style="font-family: 宋体;">对象是一个包装了本地资源的</span><span lang="EN-US">Java</span><span style="font-family: 宋体;">结构，不能被</span><span lang="EN-US">Java</span><span style="font-family: 宋体;">的垃圾回收器管理。加载图像而不卸载，会导致内存泄漏。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">使用</span><span lang="EN-US">ImageDescriptor</span><span style="font-family: 宋体;">来描述</span><span lang="EN-US">Image</span><span style="font-family: 宋体;">，</span><span lang="EN-US">ImageDescriptor</span><span style="font-family: 宋体;">可以通过</span><span lang="EN-US">getImageDescriptor()</span><span style="font-family: 宋体;">方法来获得。</span></p>
<span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">ImageCache</span><span style="font-size: 10.5pt; font-family: 宋体;">类为一个专门管理图像的类。<br />
</span>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.plugindev.addressbook.util;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.HashMap;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Iterator;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.jface.resource.ImageDescriptor;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.swt.graphics.Image;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ImageCache&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ImageDescriptor,&nbsp;Image</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;imageMap&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ImageDescriptor,&nbsp;Image</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;ImageCache&nbsp;instance;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">单例，获得ImageCache的唯一实例</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;ImageCache&nbsp;getInstance()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(instance&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instance&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ImageCache();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;instance;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">保证每个图像资源只有唯一的创建操作</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Image&nbsp;getImage(ImageDescriptor&nbsp;descriptor)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(descriptor&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;image&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Image)&nbsp;imageMap.get(descriptor);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(image&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;descriptor.createImage();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageMap.put(descriptor,&nbsp;image);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;image;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">卸载图像资源</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dispose()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iter&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;imageMap.values().iterator();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(iter.hasNext())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Image)&nbsp;iter.next()).dispose();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageMap.clear();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<br />
ImageKey保存所有图像路径字符串描述符<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.plugindev.addressbook.util;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.eclipse.jface.resource.ImageDescriptor;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.plugindev.addressbook.Activator;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ImageKeys&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMAGE_CATEGORY&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMAGE_PEOPLE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/people.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">类别图像</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_BUSINESS&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/business.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_FAMILY&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/family.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_FRIENDS&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/friends.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_LOVER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/lover.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_MATE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/mate.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_ORDINARY&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/ordinary.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_VIP&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/vip.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_UNKNOWN&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/unknown.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_CAT_TEACHER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/category/teacher.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">操作图像</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_TOOL_ADD&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/actions/add.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_TOOL_DELETE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/actions/delete.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_TOOL_DISABLEDELETE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/actions/delete_dis.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_TOOL_FILTER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/actions/filter.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">编辑器相关</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_FORM_BG&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/form_banner.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">$NON-NLS-1$</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_HORIZONTAL&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/th_horizontal.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">$NON-NLS-1$</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_VERTICAL&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/th_vertical.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">$NON-NLS-1$<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">ScrollBlock图标</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_SCROL_BASIC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/basic.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_SCROL_PHONE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/phone.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_SCROL_AREA&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/area.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_SCROL_CONTACT&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/editors/contact.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">向导相关</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_WIZARD_NEW&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/wizards/new_wiz.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">帮助相关</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;IMG_HELP&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">icons/help/help.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;ImageDescriptor&nbsp;getImageDescriptor(String&nbsp;path)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;Activator.getImageDescriptor(path);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/xujun7/aggbug/289256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2009-07-31 13:51 <a href="http://www.blogjava.net/xujun7/archive/2009/07/31/289256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse插件开发学习笔记 Views</title><link>http://www.blogjava.net/xujun7/archive/2009/07/31/289254.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Fri, 31 Jul 2009 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2009/07/31/289254.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/289254.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2009/07/31/289254.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/289254.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/289254.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math" />
<m:brkBin m:val="before" />
<m:brkBinSub m:val="--" />
<m:smallFrac m:val="off" />
<m:dispDef/>
<m:lMargin m:val="0" />
<m:rMargin m:val="0" />
<m:defJc m:val="centerGroup" />
<m:wrapIndent m:val="1440" />
<m:intLim m:val="subSup" />
<m:naryLim m:val="undOvr" />
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267">
<w:LsdException locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal" />
<w:LsdException locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 2" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 3" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 4" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 5" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 6" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 7" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 8" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 9" />
<w:LsdException locked="false" priority="39" name="toc 1" />
<w:LsdException locked="false" priority="39" name="toc 2" />
<w:LsdException locked="false" priority="39" name="toc 3" />
<w:LsdException locked="false" priority="39" name="toc 4" />
<w:LsdException locked="false" priority="39" name="toc 5" />
<w:LsdException locked="false" priority="39" name="toc 6" />
<w:LsdException locked="false" priority="39" name="toc 7" />
<w:LsdException locked="false" priority="39" name="toc 8" />
<w:LsdException locked="false" priority="39" name="toc 9" />
<w:LsdException locked="false" priority="35" qformat="true" name="caption" />
<w:LsdException locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title" />
<w:LsdException locked="false" priority="1" name="Default Paragraph Font" />
<w:LsdException locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle" />
<w:LsdException locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong" />
<w:LsdException locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis" />
<w:LsdException locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid" />
<w:LsdException locked="false" unhidewhenused="false" name="Placeholder Text" />
<w:LsdException locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1" />
<w:LsdException locked="false" unhidewhenused="false" name="Revision" />
<w:LsdException locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph" />
<w:LsdException locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote" />
<w:LsdException locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6" />
<w:LsdException locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis" />
<w:LsdException locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis" />
<w:LsdException locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference" />
<w:LsdException locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference" />
<w:LsdException locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title" />
<w:LsdException locked="false" priority="37" name="Bibliography" />
<w:LsdException locked="false" priority="39" qformat="true" name="TOC Heading" />
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
</style>
<![endif]-->
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">创建编辑器的上下文操作，</span><span lang="EN-US">targetID="#TextEditorContext"</span><span style="font-family: 宋体;">，为</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">默认文件编辑器的上下文菜单标识符。实现类必须实现</span><span lang="EN-US">IEditorActionDelegate</span><span style="font-family: 宋体;">接口。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Java</span><span style="font-family: 宋体;">编辑器对应的</span><span lang="EN-US">ID</span><span style="font-family: 宋体;">为：</span><span lang="EN-US">#TextEditorContext</span><span style="font-family: 宋体;">和</span><span lang="EN-US">&nbsp;#CompilationUnitEditorContext</span><span style="font-family: 宋体;">，定义好</span><span lang="EN-US">targetID</span><span style="font-family: 宋体;">，就把我们的插件</span><span lang="EN-US">id</span><span style="font-family: 宋体;">指向视图菜单的</span><span lang="EN-US">id</span><span style="font-family: 宋体;">了。这样</span><span lang="EN-US">Java</span><span style="font-family: 宋体;">编辑器就会添加我们的菜单项了。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">targetID</span><span style="font-family: 宋体;">用来与特定的编辑器，查看器，菜单绑定。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">命令与键绑定，和操作相关联。命令只是操作的声明，操作的具体实现细节由操作本身来完成。将命令从操作实现中分离出来。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Org.eclipse.ui.commands</span><span style="font-family: 宋体;">扩展点</span> <span style="font-family: 宋体;">定义命令</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Org.eclipse.ui.bindings</span><span style="font-family: 宋体;">扩展点</span> <span style="font-family: 宋体;">与命令和键绑定</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">视图的实现类都必须实现</span><span lang="EN-US">org.eclipse.ui.IViewPart</span><span style="font-family: 宋体;">接口，一般都会集成</span><span lang="EN-US">org.eclipse.ui.ViewPart</span><span style="font-family: 宋体;">类。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">视图的行为由一个实现了</span><span lang="EN-US">org.eclipse.ui.IViewPart</span><span style="font-family: 宋体;">接口的类定义</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">IStructuredContentProvider</span><span style="font-family: 宋体;">结构化内容提供者负责从输入对象中提取对象，把它传递给表格查看器进行显示。</span><span lang="EN-US">AddressViewContentProvider</span><span style="font-family: 宋体;">实现</span><span lang="EN-US">IStructuredContentProvider</span><span style="font-family: 宋体;">（内容与查看器的绑定）和</span> <span lang="EN-US">AddressManagerListener</span><span style="font-family: 宋体;">接口（监听模型变化）。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">AddressViewContentProvider</span><span style="font-family: 宋体;">通过</span><span lang="EN-US">AddressManager</span><span style="font-family: 宋体;">获取模型来提供显示</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">AddressViewContentProvider</span><span style="font-family: 宋体;">实现</span><span lang="EN-US">AddressManagerListener</span><span style="font-family: 宋体;">的</span><span lang="EN-US">addressesChanged</span><span style="font-family: 宋体;">方法。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">LableProvider</span><span style="font-family: 宋体;">标签提供者将获取内容提供者返回的一个表格行对象，并提取要显示到的列上的值。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">ITableLabelProvider</span><span style="font-family: 宋体;">接口要求实现</span><span lang="EN-US">getColumnText</span><span style="font-family: 宋体;">和</span><span lang="EN-US">getColumnImage</span><span style="font-family: 宋体;">两个主要的方法，</span><span lang="EN-US">getColumnText</span><span style="font-family: 宋体;">返回指定单元格的显示文本，</span><span lang="EN-US">getColumnImage</span><span style="font-family: 宋体;">返回指定单元格的显示图标。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">根据对表格列的判断来显示相应区域的文本和图像。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">public String getColumnText(Object
element, int columnIndex)</span><span style="font-family: 宋体;">，其中</span><span lang="EN-US">element</span><span style="font-family: 宋体;">表示单元格所在行的对象，</span><span lang="EN-US">columnIndex</span><span style="font-family: 宋体;">表示单元格所在的列，返回显示的文本。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">public Image getColumnImage(Object
element, int columnIndex)</span><span style="font-family: 宋体;">，其中</span><span lang="EN-US">element</span><span style="font-family: 宋体;">表示单元格所在行的对象，</span><span lang="EN-US">columnIndex</span><span style="font-family: 宋体;">表示单元格所在的列，返回此单元格的显示图标。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">ViewerSorter</span><span style="font-family: 宋体;">查看器排序器用于对内容提供者提供的元素进行排序，继承</span><span lang="EN-US">ViewerSorter</span><span style="font-family: 宋体;">类。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">一个视图仅可以有一个内容提供者，一个标签提供者和一个排序器，但过滤器可以有很多个。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">ViewerFilter</span><span style="font-family: 宋体;">类用于确定显示内容提供者返回的哪些行对象，不显示哪些行对象。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">获取当前选中项，先查找视图，找到该视图后，调用</span><span lang="EN-US">getSelection()</span><span style="font-family: 宋体;">得到当前选择项，然后马上转换为</span><span lang="EN-US">IStructuredSelection</span><span style="font-family: 宋体;">，以后的操作就是统一的了，因为有</span><span lang="EN-US">IStructuredSelection</span><span style="font-family: 宋体;">接口。如果是在</span><span lang="EN-US">action</span><span style="font-family: 宋体;">中遇到这种需求，就将</span><span lang="EN-US">event</span><span style="font-family: 宋体;">调用</span><span lang="EN-US">getSelection()</span><span style="font-family: 宋体;">，然后转换为</span><span lang="EN-US">IStructuredSelection</span><span style="font-family: 宋体;">，后续操作相同。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">的每个视图（</span><span lang="EN-US">View</span><span style="font-family: 宋体;">）都有自己的菜单和工具条，</span><span lang="EN-US">View</span><span style="font-family: 宋体;">通过与自己相关的</span><span lang="EN-US">IViewSite</span><span style="font-family: 宋体;">对象与这些东西打交道，确切的说，是通过这个</span><span lang="EN-US">IViewSite</span><span style="font-family: 宋体;">对象的</span><span lang="EN-US">IActionBars</span><span style="font-family: 宋体;">对象来管理，</span><span lang="EN-US">ActionBars</span><span style="font-family: 宋体;">对象负责菜单、工具条和状态栏。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">makeActions</span><span style="font-family: 宋体;">是创建操作，必要的</span><span lang="EN-US">IAction</span><span style="font-family: 宋体;">对象，这些对象可用在菜单、工具条里。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">hookContextMenu</span><span style="font-family: 宋体;">是把刚刚创建的</span><span lang="EN-US">IAction</span><span style="font-family: 宋体;">对象放进与</span><span lang="EN-US">View</span><span style="font-family: 宋体;">相关的</span><span lang="EN-US">MenuManager</span><span style="font-family: 宋体;">里。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">当触发了</span><span lang="EN-US">menu</span><span style="font-family: 宋体;">事件时，重新填充（</span><span lang="EN-US">fillContextMenu</span><span style="font-family: 宋体;">）</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">setRemoveAllWhenShown(true)</span><span style="font-family: 宋体;">的作用是清空以前显示的菜单项。不把</span><span lang="EN-US">removeAllWhenShow</span><span style="font-family: 宋体;">置为</span><span lang="EN-US">true</span><span style="font-family: 宋体;">的话，每点一下右键你就会看到菜单项多出一倍来。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">用</span><span lang="EN-US">MenuManager</span><span style="font-family: 宋体;">可以创建出一个</span><span lang="EN-US">Menu</span><span style="font-family: 宋体;">对象，然后我们用表格的</span><span lang="EN-US">setMenu</span><span style="font-family: 宋体;">方法将表格控件与</span><span lang="EN-US">Menu</span><span style="font-family: 宋体;">控件联系在一起就好了。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">getSite().registerContextMenu(menuMgr,
viewer)</span><span style="font-family: 宋体;">这是</span><span lang="EN-US">context menu</span><span style="font-family: 宋体;">能不能显示的关键。一个视图中可以有多个</span><span lang="EN-US">context menu</span><span style="font-family: 宋体;">，而每一个</span><span lang="EN-US">context menu</span><span style="font-family: 宋体;">都必须注册给</span><span lang="EN-US">workbench</span><span style="font-family: 宋体;">。这需要通过调用</span><span lang="EN-US">org.eclipse.ui.IWorkbenchPartSite.registerContextMenu(MenuManager
menuManager, ISelectionProvider selectionProvider)</span><span style="font-family: 宋体;">或者（当有多个注册的</span><span lang="EN-US">context
menu</span><span style="font-family: 宋体;">时）</span><span lang="EN-US">org.eclipse.ui.IWorkbenchPartSite.registerContextMenu(String menuId,
MenuManager menuManager, ISelectionProvider selectionProvider)&nbsp;</span><span style="font-family: 宋体;">增加的参数</span><span lang="EN-US">menuId</span><span style="font-family: 宋体;">用于区分不同的</span><span lang="EN-US">context
menu</span><span style="font-family: 宋体;">。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">上下文菜单比工具栏多一步创建上下文菜单。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">属性视图支持所有实现</span><span lang="EN-US">IResource</span><span style="font-family: 宋体;">接口的资源。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">一个视图（</span><span lang="EN-US">View</span><span style="font-family: 宋体;">）希望得到另外一个视图显示的内容，或者选择的内容。在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">中，比较标准的做法是通过</span><span lang="EN-US">ISelectionProvider</span><span style="font-family: 宋体;">和</span><span lang="EN-US">ISelectionListener</span><span style="font-family: 宋体;">来完成的。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">为了解决这个问题，提供了所谓的</span><span lang="EN-US">Site</span><span style="font-family: 宋体;">，以及</span><span lang="EN-US">ISelectionService</span><span style="font-family: 宋体;">机制，来处理视图之间的简单的交互。简单的说，</span><span lang="EN-US">ViewSite</span><span style="font-family: 宋体;">提供了一个交互的中心点，其它</span><span lang="EN-US">View</span><span style="font-family: 宋体;">向</span><span lang="EN-US">ViewSite</span><span style="font-family: 宋体;">提供选择事件，或者向其注册监听器，而事件的触发与转发则由</span><span lang="EN-US">ViewSite()</span><span style="font-family: 宋体;">来完成。只需在</span><span lang="EN-US">View</span><span style="font-family: 宋体;">中实现</span><span lang="EN-US">ISelectionListener</span><span style="font-family: 宋体;">接口，就可以监听其他</span><span lang="EN-US">Workbench</span><span style="font-family: 宋体;">部分发生的选择事件。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">向</span><span lang="EN-US">Workbench</span><span style="font-family: 宋体;">注册监听器</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">getSite().getPage().addSelectionListener(</span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;" lang="EN-US">this</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">);</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">向特定</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">WorkbenchID</span><span style="font-size: 10pt; font-family: 宋体; color: black;">注册监听器</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">getSite().getPage().addSelectionListener(String
WorkbenchID, ISelectionListener);</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">并实现</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">selectionChanged</span><span style="font-size: 10pt; font-family: 宋体; color: black;">方法来处理监听器捕获到的事件。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">一个</span><span lang="EN-US">ISelectionProvider</span><span style="font-family: 宋体;">如果希望被别的</span><span lang="EN-US">View</span><span style="font-family: 宋体;">进行监听的话，则应该向其</span><span lang="EN-US">Site()</span><span style="font-family: 宋体;">进行注册。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">getViewSite().setSelectionProvider(</span><em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #0000c0;" lang="EN-US">viewer</span></em><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">IPropertySource</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的实现类必须为每个显示在属性视图中的项创建一个属性描述符。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">ComboBoxPropertyDescriptor</span><span style="font-size: 10pt; font-family: 宋体; color: black;">可以在属性视图的单元格中显示复选框，但必须为其定义标签提供者和一组</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">String</span><span style="font-size: 10pt; font-family: 宋体; color: black;">数组为显示内容。</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">getText</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的参数是</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">getPropertyValue</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的返回值，这个返回值必须是整数。在</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">ComboBoxPropertyDescriptor</span><span style="font-size: 10pt; font-family: 宋体; color: black;">中，每个项是按照它们的索引号来区分的。在</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">initProperties</span><span style="font-size: 10pt; font-family: 宋体; color: black;">中，将类别名用整数表示。</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">Integer item = (Integer)element;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">表格查看器添加状态栏支持，则表格查看器添加监听器</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">ISelectionChangedListener</span><span style="font-size: 10pt; font-family: 宋体; color: black;">。</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US"><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/xujun7/aggbug/289254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2009-07-31 13:42 <a href="http://www.blogjava.net/xujun7/archive/2009/07/31/289254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse插件体系结构</title><link>http://www.blogjava.net/xujun7/archive/2009/07/28/288759.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Tue, 28 Jul 2009 08:07:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2009/07/28/288759.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/288759.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2009/07/28/288759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/288759.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/288759.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 12" />
<meta name="Originator" content="Microsoft Word 12" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
<link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math" />
<m:brkBin m:val="before" />
<m:brkBinSub m:val="--" />
<m:smallFrac m:val="off" />
<m:dispDef/>
<m:lMargin m:val="0" />
<m:rMargin m:val="0" />
<m:defJc m:val="centerGroup" />
<m:wrapIndent m:val="1440" />
<m:intLim m:val="subSup" />
<m:naryLim m:val="undOvr" />
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267">
<w:LsdException locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal" />
<w:LsdException locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 2" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 3" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 4" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 5" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 6" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 7" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 8" />
<w:LsdException locked="false" priority="9" qformat="true" name="heading 9" />
<w:LsdException locked="false" priority="39" name="toc 1" />
<w:LsdException locked="false" priority="39" name="toc 2" />
<w:LsdException locked="false" priority="39" name="toc 3" />
<w:LsdException locked="false" priority="39" name="toc 4" />
<w:LsdException locked="false" priority="39" name="toc 5" />
<w:LsdException locked="false" priority="39" name="toc 6" />
<w:LsdException locked="false" priority="39" name="toc 7" />
<w:LsdException locked="false" priority="39" name="toc 8" />
<w:LsdException locked="false" priority="39" name="toc 9" />
<w:LsdException locked="false" priority="35" qformat="true" name="caption" />
<w:LsdException locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title" />
<w:LsdException locked="false" priority="1" name="Default Paragraph Font" />
<w:LsdException locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle" />
<w:LsdException locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong" />
<w:LsdException locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis" />
<w:LsdException locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid" />
<w:LsdException locked="false" unhidewhenused="false" name="Placeholder Text" />
<w:LsdException locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1" />
<w:LsdException locked="false" unhidewhenused="false" name="Revision" />
<w:LsdException locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph" />
<w:LsdException locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote" />
<w:LsdException locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5" />
<w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6" />
<w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6" />
<w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6" />
<w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6" />
<w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6" />
<w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6" />
<w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6" />
<w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6" />
<w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6" />
<w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6" />
<w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6" />
<w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6" />
<w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6" />
<w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6" />
<w:LsdException locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis" />
<w:LsdException locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis" />
<w:LsdException locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference" />
<w:LsdException locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference" />
<w:LsdException locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title" />
<w:LsdException locked="false" priority="37" name="Bibliography" />
<w:LsdException locked="false" priority="39" qformat="true" name="TOC Heading" />
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
</style>
<![endif]-->
<p class="MsoNormal"><span lang="EN-US">&#8220;</span><span style="font-family: 宋体;">插件是为系统提供功能的代码和</span><span lang="EN-US">/</span><span style="font-family: 宋体;">或数据的结构化包。可以以代码库（带有公共</span><span lang="EN-US"> [</span><span style="font-family: 宋体;">应用程序接口</span><span lang="EN-US">] API </span><span style="font-family: 宋体;">的</span><span lang="EN-US"> Java </span><span style="font-family: 宋体;">类）、平台扩展甚至文档的形式来提供功能。插件可以定义扩展点、定义良好的位置，其他插件可以在这些位置添加功能。</span><span lang="EN-US">&#8221;</span></p>
<p class="MsoNormal"><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">使用</span><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">作为插件系统的基础。动态添加新插件和停止现有插件的能力。以动态方式管理组件生命周期的一个健壮的系统。</span></p>
<p class="MsoNormal"><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">是基于</span><span lang="EN-US">Java</span><span style="font-family: 宋体;">的框架，旨在用于需要长运行时间、动态更新和对运行环境破坏最小的系统。</span></p>
<p class="MsoNormal"><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">规范定义了绑定包生命周期的基础架构和绑定包的交互方式。这些规则通过使用特殊</span><span lang="EN-US"> Java</span><span style="font-family: 宋体;">类加载器来强制执行。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">在一般</span><span lang="EN-US">Java</span><span style="font-family: 宋体;">应用程序中，</span><span lang="EN-US">CLASSPATH</span><span style="font-family: 宋体;">中的所有类都对所有其他类可见。相反，</span><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">类加载器基于</span><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">规范和每个绑定包的</span><span lang="EN-US">manifest.mf</span><span style="font-family: 宋体;">文件中指定的选项来限制类交互。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">在</span><span lang="EN-US">3.1</span><span style="font-family: 宋体;">之前版本的</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">中，在每个插件的</span><span lang="EN-US">plugin.xml</span><span style="font-family: 宋体;">文件中定义插件依赖关系以及扩展和扩展点。在使用</span><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">的新版本</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">中，依赖关系信息被分解到</span><span lang="EN-US">manifest.mf</span><span style="font-family: 宋体;">文件中，而</span><span lang="EN-US"> plugin.xml</span><span style="font-family: 宋体;">文件只包含扩展和扩展点的</span><span lang="EN-US">XML</span><span style="font-family: 宋体;">定义。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">插件级的依赖关系改为需要显式导出和导入包的依赖关系。插件开发人员必须进行专门选择来使插件中的功能可供外部使用。该限制允许内部包保留在内部，避免插件暴露不必要的类。</span><strong><span lang="EN-US"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">的扩展和扩展点</span> <span style="font-family: 宋体;">可插拔</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">每一个希望被别的模块扩展的模块，都必须声明一系列的扩展点，即插座；希望在这个模块上扩展功能的模块，需要按照扩展点的什么来编写扩展，即插头。扩展点提供服务，扩展是要服务。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">延迟装载，只有在一个插件被其他模块调用的时候，才装载到内存中。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">通过将扩展的声明和实现分离，</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">实现类延迟装载。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">扩展点和扩展的声明都是通过</span><span lang="EN-US">XML</span><span style="font-family: 宋体;">文件完成的，即清单文件</span><span lang="EN-US">MANIFEST.MF</span><span style="font-family: 宋体;">，描述了一个插件能够做什么，而</span><span lang="EN-US">JAVA</span><span style="font-family: 宋体;">代码则具体完成这些功能。系统启动时，只需搜索清单文件，建立一张索引表，知道有哪些插件以及能够提供什么服务。当</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">第一次启动时，</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">运行时会遍历</span><span lang="EN-US">plugins</span><span style="font-family: 宋体;">文件夹中的目录，扫描每个插件的清单文件信息，并建立一个内部模型来记录它所找到的每个插件的信息。</span></p>
<p class="MsoNormal"><span lang="EN-US">RCP</span><span style="font-family: 宋体;">包括基于</span><span lang="EN-US">OSGi</span><span style="font-family: 宋体;">的运行时框架</span><span lang="EN-US">Equniox</span><span style="font-family: 宋体;">，基于</span><span lang="EN-US">SWT/JFace</span><span style="font-family: 宋体;">的图形模块，</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">平台的</span><span lang="EN-US">UI</span><span style="font-family: 宋体;">和</span><span lang="EN-US">Runtime</span><span style="font-family: 宋体;">模块。基于</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">的应用程序所需的最小插件集称为</span><span lang="EN-US">Eclipse Rich Client Platform</span><span style="font-family: 宋体;">（</span><span lang="EN-US">RCP</span><span style="font-family: 宋体;">）</span></p>
<p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="图片_x0020_2" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:366.75pt;height:241.5pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.jpg" o:title="eclipse" />
</v:shape><![endif]--><!--[if !vml]--><img alt="" src="http://www.blogjava.net/images/blogjava_net/xujun7/eclipse.jpg" width="489" height="322" /><br />
<!--[endif]--></span></p>
<p class="MsoNormal"><span lang="EN-US">Platform Runtime </span><span style="font-family: 宋体;">平台运行库是内核，它在启动时检查已安装了哪些插件，并创建关于它们的注册表信息。即在</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">运行时发现和管理插件。为降低启动时间和资源使用，它在实际需要任何插件时才加载该插件。除了内核外，其他每样东西都是作为插件来实现的。</span></p>
<p class="MsoNormal"><span lang="EN-US">Workspace </span><span style="font-family: 宋体;">工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件，以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息，比如文件创建、删除或更改。</span></p>
<p class="MsoNormal"><span lang="EN-US">Workbench </span><span style="font-family: 宋体;">工作台为</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">提供用户界面。它是使用标准窗口工具包（</span><span lang="EN-US">SWT</span><span style="font-family: 宋体;">）和一个更高级的</span><span lang="EN-US"> API</span><span style="font-family: 宋体;">（</span><span lang="EN-US">JFace</span><span style="font-family: 宋体;">）来构建的；</span><span lang="EN-US">SWT </span><span style="font-family: 宋体;">是</span><span lang="EN-US"> Java </span><span style="font-family: 宋体;">的</span><span lang="EN-US"> Swing/AWT GUI API </span><span style="font-family: 宋体;">的非标准替代者，</span><span lang="EN-US">JFace </span><span style="font-family: 宋体;">则建立在</span><span lang="EN-US"> SWT </span><span style="font-family: 宋体;">基础上，提供用户界面组件。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">插件可以扮演双重角色，其他插件服务的使用者和其他插件服务的提供者。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">manifest.mf<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Bundle-Activator</span></strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">该类用于启动和停止绑定包。该类扩展</span>
<span lang="EN-US">org.eclipse.core.runtime.Plugin</span><span style="font-family: 宋体;">，实现了</span> <span lang="EN-US">BundleActivator </span><span style="font-family: 宋体;">接口。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Bundle-Version</span></strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">该属性指定绑定包的版本号。包导入和必需的绑定包规范可以包括绑定包版本号。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Export-Package</span></strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">该属性指定要公共暴露给其他插件的所有包。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Import-Package</span></strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">该属性指定要从必需插件中显式导入的所有包。默认情况下，必须为要启动的绑定包解析所有包。还可以将包导入指定为可选项，以支持包不存在的情况。显式导入的类在</span><span lang="EN-US"> Require-Bundle </span><span style="font-family: 宋体;">插件中的包之前解析。</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Require-Bundle</span></strong><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体;">该属性指定要在给定绑定包中导入使用的绑定包及其已导出的包。指定的绑定包在显式包导入之后解析。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">----------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------------------
<br />
|plugin&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|plugin&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
<br />
|&nbsp;&nbsp;&nbsp;---------------&nbsp;&nbsp;|&nbsp;contibute&nbsp;&nbsp;|&nbsp;&nbsp;--------------&nbsp;&nbsp;|
<br />
|&nbsp;&nbsp;&nbsp;|&nbsp;ext&nbsp;point&nbsp;p&nbsp;|&nbsp;&lt;---------------&nbsp;|&nbsp;extension&nbsp;&nbsp;|&nbsp;&nbsp;|
<br />
|&nbsp;&nbsp;&nbsp;---------------&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;&nbsp;&nbsp;|&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
<br />
|&nbsp;&nbsp;&nbsp;---------------&nbsp;&nbsp;|&nbsp;|implement&nbsp;|&nbsp;&nbsp;--------------&nbsp;&nbsp;|
<br />
|&nbsp;&nbsp;&nbsp;|&nbsp;interface&nbsp;I&nbsp;|&nbsp;&lt;--|------------&nbsp;|&nbsp;class&nbsp;&nbsp;C&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;|
<br />
|&nbsp;&nbsp;&nbsp;---------------&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;create,&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----------------------|<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">你可以把</span><span lang="EN-US">extension&nbsp;point</span><span style="font-family: 宋体;">想为接口</span><span lang="EN-US">,&nbsp;</span><span style="font-family: 宋体;">而我们扩展这些</span><span lang="EN-US">extension,</span><span style="font-family: 宋体;">其实就是实现了这个接口</span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">假设</span><span lang="EN-US">plugin&nbsp;A</span><span style="font-family: 宋体;">定义了一个</span><span lang="EN-US">extension&nbsp;point,&nbsp;
plugin&nbsp;B</span><span style="font-family: 宋体;">定义了一个</span><span lang="EN-US">extension,</span><span style="font-family: 宋体;">是基于</span><span lang="EN-US">plugin&nbsp;A</span><span style="font-family: 宋体;">的这个</span><span lang="EN-US">extension&nbsp;point</span><span style="font-family: 宋体;">的</span><span lang="EN-US">,</span><span style="font-family: 宋体;">它的实现类是</span><span lang="EN-US">class&nbsp;C,</span><span style="font-family: 宋体;">那</span><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">启动后</span><span lang="EN-US">,&nbsp;</span><span style="font-family: 宋体;">会读取每个</span><span lang="EN-US">plugin</span><span style="font-family: 宋体;">的配置</span><span lang="EN-US">plugin.xml,</span><span style="font-family: 宋体;">然后发现</span><span lang="EN-US">plugin&nbsp;B</span><span style="font-family: 宋体;">有一个基于</span><span lang="EN-US">ext&nbsp;point&nbsp;p</span><span style="font-family: 宋体;">的扩展</span><span lang="EN-US">,</span><span style="font-family: 宋体;">那它就会用</span><span lang="EN-US">interface&nbsp;I</span><span style="font-family: 宋体;">作为对象</span><span lang="EN-US">,&nbsp;</span><span style="font-family: 宋体;">然后实例化一个</span><span lang="EN-US">class&nbsp;C,&nbsp;</span><span style="font-family: 宋体;">就等于实现了这个</span><span lang="EN-US">extension</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">eclipse</span><span style="font-family: 宋体;">的内部实现</span><span lang="EN-US"><br />
IPluginRegistry&nbsp;registry&nbsp;=&nbsp;Platform.getPluginRegistry(); <br />
IExtensionPoint&nbsp;extensionPoint&nbsp;=&nbsp;registry.getExtensionPoint(xpid);
//</span><span style="font-family: 宋体;">通过扩展点</span><span lang="EN-US">ID</span><span style="font-family: 宋体;">获得扩展点</span><span lang="EN-US"><br />
IExtension[]&nbsp;extensions&nbsp;=&nbsp;extensionPoint.getExtensions(); //</span><span style="font-family: 宋体;">获得该扩展点的所有扩展</span><span lang="EN-US"><br />
//&nbsp;For&nbsp;each&nbsp;extension&nbsp;... <br />
for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;extensions.length;&nbsp;i++)&nbsp;{
<br />
&nbsp;&nbsp;&nbsp;&nbsp;IExtension&nbsp;extension&nbsp;=&nbsp;extensions[i]; <br />
&nbsp;&nbsp;&nbsp;&nbsp;IConfigurationElement[]&nbsp;elements&nbsp;=&nbsp;extension.getConfigurationElements();
//</span><span style="font-family: 宋体;">获得扩展点配置元素</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;configurationElement[j].createExecutableExtension(&#8220;Class&#8221;);
//</span><span style="font-family: 宋体;">为每个回调对象创建实例</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br />
} <br />
eclipse</span><span style="font-family: 宋体;">就是注册每一个</span><span lang="EN-US">extension</span><span style="font-family: 宋体;">和</span><span lang="EN-US">extension&nbsp;point</span><span style="font-family: 宋体;">，然后用</span><span lang="EN-US">extension&nbsp;point</span><span style="font-family: 宋体;">来实例化它对应的那个</span><span lang="EN-US">extension</span><span style="font-family: 宋体;">。</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-family: 宋体;">发生事件并向其它对象请求处理的对象被称为</span><span lang="EN-US">&#8220;</span><span style="font-family: 宋体;">事件对象</span><span lang="EN-US">&#8221;</span><span style="font-family: 宋体;">，而处理事件的对象被称为</span><span lang="EN-US">&#8220;</span><span style="font-family: 宋体;">回调对象</span><span lang="EN-US">&#8221;</span><span style="font-family: 宋体;">。回调对象由扩展者插件定义，由宿主插件创建实例。</span></p>
<span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">Eclipse</span><span style="font-size: 10.5pt; font-family: 宋体;">各</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">bundle</span><span style="font-size: 10.5pt; font-family: 宋体;">使用各自的</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">class loader</span><span style="font-size: 10.5pt; font-family: 宋体;">，若需要引用其他</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">bundle</span><span style="font-size: 10.5pt; font-family: 宋体;">类来动态创建实例，则需要使用类所在的</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">bundle</span><span style="font-size: 10.5pt; font-family: 宋体;">的</span><span style="font-size: 10.5pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">class loader</span><span style="font-size: 10.5pt; font-family: 宋体;">。</span>
<img src ="http://www.blogjava.net/xujun7/aggbug/288759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2009-07-28 16:07 <a href="http://www.blogjava.net/xujun7/archive/2009/07/28/288759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>