<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>专注于blackberry &#187; app</title>
	<atom:link href="http://www.inblackberry.com/web/tag/app/feed" rel="self" type="application/rss+xml" />
	<link>http://www.inblackberry.com/web</link>
	<description>blackberry</description>
	<pubDate>Thu, 26 Aug 2010 14:19:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>BlackBerry 应用程序开发者指南 第一卷：基础&#8211;第2章 编写BlackBerry Java应用程序</title>
		<link>http://www.inblackberry.com/web/development/docs/developer-guide-vol-1-charpter-2-write-an-java-app.html</link>
		<comments>http://www.inblackberry.com/web/development/docs/developer-guide-vol-1-charpter-2-write-an-java-app.html#comments</comments>
		<pubDate>Tue, 22 Apr 2008 09:32:28 +0000</pubDate>
		<dc:creator>Taigoo</dc:creator>
		
		<category><![CDATA[文档]]></category>

		<category><![CDATA[app]]></category>

		<category><![CDATA[doc]]></category>

		<category><![CDATA[jde]]></category>

		<guid isPermaLink="false">http://www.inblackberry.com/web/development/docs/developer-guide-vol-1-charpter-2-write-an-java-app.html</guid>
		<description><![CDATA[<p class="MsoNormal" style="text-align: right" align="right">2</p>
<a name="_Toc125106922">第2</a>章 编写BlackBerry Java应用程序




<p class="MsoNormal">应用程序管理</p>
<p class="MsoNormal">编写一个例程</p>
<p]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align: right" align="right"><strong><span lang="EN-US" style="font-size: 26pt">2<o:p></o:p></span></strong></p>
<h1><a name="_Toc125106922"><span style="color: #333399; font-family: 宋体">第</span><span lang="EN-US" style="color: #333399">2</span></a><span><span style="color: #333399; font-family: 宋体">章</span><span style="color: #333399"> </span></span><span><span style="color: #333399; font-family: 宋体">编写</span><span lang="EN-US" style="color: #333399">BlackBerry Java</span></span><span><span style="color: #333399; font-family: 宋体">应用程序</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h1>
<table class="MsoNormalTable" style="background: #d9d9d9 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="height: 103pt">
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 432pt; padding-top: 0cm; height: 103pt" valign="top" width="576">
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">应用程序管理</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">编写一个例程</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">重用一般代码</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用</span><span lang="EN-US" style="color: #333399">BlackBerry IDE<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用命令行</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用蓝牙开发环境</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用</span><span lang="EN-US" style="color: #333399">Eclipse</span></strong><strong><span style="color: #333399; font-family: 宋体">开发环境</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">编程指南</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
</td>
</tr>
</tbody>
</table>
<h2><a name="_Toc125106923"><span style="color: #333399; font-family: 黑体">应用程序管理</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体">当</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备启动时，</span><span lang="EN-US">VM</span><span style="font-family: 宋体">加载应用程序管理器，它管理在</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备上所有运行的程序。对于其他</span><span lang="EN-US">Java</span><span style="font-family: 宋体">程序，应用程序管理器的功能类似操作系统事件的中心调度员一样。</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体">提供用户界面的应用程序扩展了</span><span lang="EN-US">net.rim.device.api.ui.UiApplication</span><span style="font-family: 宋体">类。这个类为应用程序提供方法来注册事件监听者，管理线程以及</span><span lang="EN-US">UI</span><span style="font-family: 宋体">组件。</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体">没有提供用户界面的应用程序扩展了</span><span lang="EN-US">net.rim.device.api.system.Application</span><span style="font-family: 宋体">类。</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">应用程序开始于</span><span lang="EN-US">main()</span><span style="font-family: 宋体">函数。当一个程序开始时，它的</span><span lang="EN-US">main()</span><span style="font-family: 宋体">线程调用</span><span lang="EN-US">enterEventDispatcher()</span><span style="font-family: 宋体">来开始处理事件。这个线程运行所有绘图以及事件处理的代码，以及登等待应用程序队列里地事件。</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体">当应用程序管理器接收到一个事件时，它将这个事件拷贝到合适的队列里，这个队列可以允许应用程序管理器指挥消息到特定的程序中。例如，前台的应用程序仅接收用户输入的消息。</span><span lang="EN-US"><o:p></o:p></span></p>
<h2><a name="_Toc125106924"><span style="color: #333399; font-family: 黑体">编写一个例程</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<h3><a name="_Toc125106925"><span style="color: #333399; font-family: 宋体">扩展</span></a><span><span lang="EN-US" style="color: #333399">UiApplication</span></span><span><span style="color: #333399; font-family: 宋体">基类</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">每个提供用户接口的应用程序扩展了</span><span lang="EN-US">UiApplication</span><span style="font-family: 宋体">基类，</span><span lang="EN-US">UiApplication</span><span style="font-family: 宋体">类为应用程序定义了方法来建立一个事件线程，并且显示和维护</span><span lang="EN-US">Screen</span><span style="font-family: 宋体">对象。</span></p>
<h3><a name="_Toc125106926"><span style="color: #333399; font-family: 宋体">定义</span></a><span><span lang="EN-US" style="color: #333399"> main()</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">在</span><span lang="EN-US" style="font-family: verdana">main()</span><span style="font-family: 宋体">中，为应用程序创建一个新的对象。调用</span><span lang="EN-US">enterEventDispatcher()</span><span style="font-family: 宋体">使应用程序进入事件线程并且开始处理消息。</span><span lang="EN-US"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr style="height: 61.35pt">
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm; height: 61.35pt" valign="top" width="568">
<pre><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: verdana">public</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"> </span><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: verdana">static</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"> </span><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: verdana">void</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"> main(String[] args) {<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"><span>&#160; </span>HelloWorld theApp = </span><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: verdana">new</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"> HelloWorld();<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"><span>&#160; </span>theApp.enterEventDispatcher();<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-size: 10pt; font-family: verdana">}</span><span lang="EN-US" style="font-family: &#39;book antiqua&#39;"><o:p></o:p></span></pre>
</td>
</tr>
</tbody>
</table>
<h3><a name="_Toc125106927"><span style="color: #333399; font-family: 宋体">定义一个构造子</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">为你的应用程序定义缺省的构造子。缺省的构造子调用</span><span lang="EN-US">UiApplication.pushScreen()</span><span style="font-family: 宋体">以显示当应用程序启动时出现的屏幕。在本例中，屏幕使一个新的</span><span lang="EN-US">HelloWorldScreen</span><span style="font-family: 宋体">实例，它在下节的代码中定义：</span><span lang="EN-US"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<pre><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: verdana">public</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"> HelloWorld() {<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"><span>&#160; </span>pushScreen(</span><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: verdana">new</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: verdana"> HelloWorldScreen());<o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-size: 10pt; font-family: verdana">} <o:p></o:p></span></pre>
</td>
</tr>
</tbody>
</table>
<h3><a name="_Toc125106928"><span style="color: #333399; font-family: 宋体">定义</span></a><span><span lang="EN-US" style="color: #333399">main</span></span><span><span style="color: #333399; font-family: 宋体">屏幕</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal" style="text-indent: 15.75pt"><span style="font-family: 宋体">为了定义应用程序</span><span lang="EN-US">UI</span><span style="font-family: 宋体">的主屏幕，扩展</span><span lang="EN-US">MainScreen</span><span style="font-family: 宋体">类。</span><span lang="EN-US">MainScreen</span><span style="font-family: 宋体">类是</span><span lang="EN-US">Screen</span><span style="font-family: 宋体">的子类，它实现了</span><span lang="EN-US">TrackwheelListener</span><span style="font-family: 宋体">和</span><span lang="EN-US">KeyboardListener</span><span style="font-family: 宋体">接口，这些接口接收和响应用户交互。如果你扩展</span><span lang="EN-US">Screen</span><span style="font-family: 宋体">类或者其子类中的一个，你并不是必须实现</span><span lang="EN-US">TrackwheelListener </span><span style="font-family: 宋体">和</span><span lang="EN-US">KeyboardListener</span><span style="font-family: 宋体">接口。</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 15.75pt"><span style="font-family: 宋体">你的类至少应该重写</span><span lang="EN-US">2</span><span style="font-family: 宋体">个</span><span lang="EN-US">MainScreen</span><span style="font-family: 宋体">的方法：缺省的构造子和</span><span lang="EN-US">onClose().<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">在这个例子中，构造子调用了</span><span lang="EN-US">MainScreen</span><span style="font-family: 宋体">的构造子。缺省地，</span><span lang="EN-US">MainScreen</span><span style="font-family: 宋体">提供下列特性：</span><span lang="EN-US"><o:p></o:p></span></p>
<ul>
<li><span style="font-family: 宋体">由一个</span><strong><span lang="EN-US">Close</span></strong><span style="font-family: 宋体">菜单项的缺省菜单。</span><span lang="EN-US"><o:p></o:p></span> </li>
<li><span style="font-family: 宋体">当你点击</span><strong><span lang="EN-US">Close</span></strong><span style="font-family: 宋体">或者按</span><strong><span lang="EN-US">Escape</span></strong><span style="font-family: 宋体">时，缺省的是关闭动作。为了提供客户定制行为，例如显示一个对话框提示，当用户点击</span><strong><span lang="EN-US">Close</span></strong><span style="font-family: 宋体">菜单项或者按</span><strong><span lang="EN-US">Escape</span></strong><span style="font-family: 宋体">按钮，重写</span><span lang="EN-US">onClose().<o:p></o:p></span> </li>
<li><span style="font-family: 宋体">一个</span><span lang="EN-US">RichTextField </span><span style="font-family: 宋体">的实例，一个可以接收焦点的只读富文本域</span><span> </span><span style="font-family: 宋体">为了得到更多关于增加</span><span lang="EN-US">UI</span><span style="font-family: 宋体">组件到屏幕中的信息，参看</span><span lang="EN-US">40</span><span style="font-family: 宋体">页的&#8220;<em>提供屏幕导航</em>&#8221;</span><span lang="EN-US"><o:p></o:p></span> </li>
<li><span style="font-family: 宋体">一个</span><strong><span lang="EN-US">Select</span></strong><span style="font-family: 宋体">菜单项的上下文菜单?</span><span> </span><span style="font-family: 宋体">为了得到更多信息，参看</span><span lang="EN-US">60</span><span style="font-family: 宋体">页的&#8220;创建定制的上下文菜单&#8220;</span><span lang="EN-US"><o:p></o:p></span> </li>
</ul>
<h3><a name="_Toc125106929"><span style="color: #333399; font-family: 宋体">代码实例</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal" style="text-indent: 15.75pt"><span style="font-family: 宋体">接下来的例子创建了一个屏幕，它包含了一个富文本域。当富文本域接收到焦点时，菜单保安一个</span><span lang="EN-US">Close</span><span style="font-family: 宋体">菜单项和一个</span><span lang="EN-US">Select</span><span style="font-family: 宋体">上下文菜单项。</span></p>
<p class="MsoNormal" style="text-indent: 15.75pt"><span lang="EN-US"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75"><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape><img height="8" alt="" src="http://www.cnblogs.com/confach/admin/$clip_image004.gif" width="586" v:shapes="_x0000_i1025" /></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">例</span><span lang="EN-US">: HelloWorld.java</span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">/**</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;</span></span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">*</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">HelloWorld.java</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;</span></span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">*</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">Copyright</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">(C)</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">2001</span><span lang="EN-US" style="font-size: 10pt; color: #7f7f9f; font-family: &#39;courier new&#39;">-</span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">2005</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">Research</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">In</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">Motion</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">Limited.</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">All</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">rights</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">reserved.</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;</span></span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: &#39;courier new&#39;">*/</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">package</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> com.rim.samples.docs.helloworld;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.ui.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.ui.component.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.ui.container.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.system.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> com.rim.samples.docs.resource.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> HelloWorld </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">extends</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> UiApplication { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">static</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> main(String[] args) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>HelloWorld theApp = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> HelloWorld(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>theApp.enterEventDispatcher(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> HelloWorld() { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>pushScreen(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> HelloWorldScreen()); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">final</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> HelloWorldScreen </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">extends</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> MainScreen { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> HelloWorldScreen() { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">super</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span><span>&#160;&#160;&#160; </span>LabelField title = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> LabelField(&#8220;HelloWorld Sample&#8221;, LabelField.ELLIPSIS </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>| LabelField.USE_ALL_WIDTH); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>setTitle(title); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>add(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> RichTextField(&#8220;Hello World!&#8221;));</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> onClose() { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>Dialog.alert(&#8220;Goodbye!&#8221;); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>System.exit(0); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">true</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal">&#160;</p>
<h2><a name="_Toc125106930"><span style="color: #333399; font-family: 黑体">重用一般代码</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<p class="MsoNormal"><span style="font-family: 宋体">抽象基类可以使你跨越多个类实现和重用一般功能。每个应用程序可以扩展单个基类。在</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">，加入基类到一个库项目中。为每个应用程序创建一个独立的项目，定义库项目的依赖。</span></p>
<h3><a name="_Toc125106931"><span style="color: #333399; font-family: 宋体">代码实例</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">本指南的例程扩展了</span><span lang="EN-US">BaseApp</span><span style="font-family: 宋体">类，它实现下面的功能：</span></p>
<ul>
<li><span style="font-family: 宋体">扩展</span><span lang="EN-US">UiApplication</span><span style="font-family: 宋体">类</span> </li>
<li><span style="font-family: 宋体">实现</span><span lang="EN-US">KeyListener</span><span style="font-family: 宋体">和</span><span lang="EN-US">TrackwheelListener</span><span style="font-family: 宋体">接口</span> </li>
<li><span style="font-family: 宋体">定义变量，例如一般的菜单项</span> </li>
<li><span style="font-family: 宋体">定义一个方法创建应用程序菜单。</span> </li>
<li><span style="font-family: 宋体">为菜单选择定义一个方法</span> </li>
<li><span style="font-family: 宋体">定义一个抽象方法退出程序</span> </li>
</ul>
<p class="MsoNormal"><span lang="EN-US"><v:shape id="_x0000_i1027" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\CONFAC~1.ZHA\LOCALS~1\Temp\msohtml1\01\clip_image005.emz"></v:imagedata><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape><br />
    <br /></span></p>
<hr style="width: 100%; height: 2px" />
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family: 宋体">例</span><span lang="EN-US">: BaseApp.java</span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;"><span>&#160;</span>* * BaseApp.java </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;"><span>&#160;</span>* * Copyright (C) 2001-2005 Research In Motion Limited. All rights reserved. </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;"><span>&#160;</span>* */</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">package</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> com.rim.samples.docs.baseapp;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.i18n.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.system.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.ui.container.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.ui.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.device.api.ui.component.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> com.rim.samples.docs.resource.*;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">abstract</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> BaseApp </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">extends</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> UiApplication </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">implements</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> BaseAppResource, KeyListener, TrackwheelListener { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> MenuItem _closeItem; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">static</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ResourceBundle _resources = </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>ResourceBundle.getBundle(BUNDLE_ID, BUNDLE_NAME); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Constructor for the abstract base class. */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> BaseApp() { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>_closeItem = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> MenuItem(_resources, MENUITEM_CLOSE, 200000, 10) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> run() { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>onExit(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>System.exit(0); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Override this method to add custom menu items. */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">protected</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> makeMenu( Menu menu, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> instance) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>Field focus = UiApplication.getUiApplication().</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160; </span>getActiveScreen().getLeafFieldWithFocus(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">(focus != </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">null</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ContextMenu contextMenu = focus.getContextMenu(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( !contextMenu.isEmpty()) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>menu.add(contextMenu); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>menu.addSeparator(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>menu.add(_closeItem); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Invoked when the trackwheel is clicked. */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> trackwheelClick( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> status, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time ) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>Menu menu = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> Menu(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>makeMenu( menu, 0); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>menu.show(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">true</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Invoked when the trackwheel is released. */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> trackwheelUnclick( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> status, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time ) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Invoked when the trackwheel is rolled. */</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> trackwheelRoll(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> amount, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> status, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keyChar(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">char</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> key, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> status, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Intercept the ESC key and exit the application. */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> retval = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">switch</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> (key) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">case</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> Characters.ESCAPE: </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>onExit(); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>System.<em>exit</em>(0); </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>retval = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">true</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">break</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> retval; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Implementation of KeyListener.keyDown(). */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keyDown(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keycode, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Implementation of KeyListener.keyRepeat(). */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keyRepeat(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keycode, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time) {<span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Implementation of KeyListener.keyStatus(). */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keyStatus(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keycode, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">/* Implementation of KeyListener.keyUp(). */</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keyUp(</span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> keycode, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> time) { </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">protected</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">abstract</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> onExit();</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><v:shape id="_x0000_i1028" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\CONFAC~1.ZHA\LOCALS~1\Temp\msohtml1\01\clip_image005.emz"></v:imagedata><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape><img height="20" alt="" src="http://www.cnblogs.com/confach/admin/$clip_image006.gif" width="553" v:shapes="_x0000_i1028" /> </span></p>
<h2><a name="_Toc125106932"><span style="color: #333399; font-family: 黑体">使用</span><span lang="EN-US" style="color: #333399">BlackBerry IDE</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<p class="MsoNormal"><span lang="EN-US"><span>&#160;</span></span><span style="font-family: 宋体">为了编写，调试和编译应用程序，使用</span><span lang="EN-US">BlackBerry IDE,</span><span style="font-family: 宋体">它是</span><span lang="EN-US">BlackBerry JDE</span><span style="font-family: 宋体">的一部分。</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160;&#160; </span><v:shape id="_x0000_i1029" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\CONFAC~1.ZHA\LOCALS~1\Temp\msohtml1\01\clip_image007.emz"></v:imagedata><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape><img height="30" alt="" src="http://www.cnblogs.com/confach/admin/$clip_image008.gif" width="35" v:shapes="_x0000_i1029" /></span><span style="font-family: 宋体">注：</span><span lang="EN-US">BlackBerry </span><span style="font-family: 宋体">版本</span><span lang="EN-US">4.1</span><span style="font-family: 宋体">使用了</span><span lang="EN-US">Sun JDK 5.0</span></p>
<h3><a name="_Toc125106933"><span style="color: #333399; font-family: 宋体">创建一个工作空间</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">，选择</span><strong><span lang="EN-US">File</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">New Workspace</span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Workspace name</span></strong><span style="font-family: 宋体">域，输入一个没有文件扩展名的名字。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Create in this directory</span></strong><span style="font-family: 宋体">域，输入一个文档。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">OK.</span></strong></p>
<h3><a name="_Toc125106934"><span style="color: #333399; font-family: 宋体">创建一个项目</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span lang="EN-US"><v:shape id="_x0000_i1030" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\CONFAC~1.ZHA\LOCALS~1\Temp\msohtml1\01\clip_image007.emz"></v:imagedata><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape></span><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注：在包含工作空间的文件夹下的子目录中创建工程。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>1．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">的</span><strong><span lang="EN-US">Project</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Create New Project.</span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>2．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Project name</span></strong><span style="font-family: 宋体">域，输入一个没有文件扩张名的项目名称。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>3．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Create project in this directory</span></strong><span style="font-family: 宋体">域，输入在此文件夹下创建项目的文件夹名称。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>4．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">OK</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>5．</span></span><span style="font-family: 宋体">在工作空间文件区域里，双击项目名称来设置项目属性。</span></p>
<p class="MsoNormal" style="text-indent: 10.5pt"><span style="font-family: 宋体">为了得到更多关于项目属性的信息，参看</span><span lang="EN-US">BlackBerry Integrated Development Environment Online Help</span><span style="font-family: 宋体">。</span></p>
<h3><a name="_Toc125106935"><span style="color: #333399; font-family: 宋体">创建源文件</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span lang="EN-US"><v:shape id="_x0000_i1031" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\CONFAC~1.ZHA\LOCALS~1\Temp\msohtml1\01\clip_image007.emz"></v:imagedata><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape></span><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注：保存源文件到和项目文件相同的文件夹下。和所有</span><span lang="EN-US">Java</span><span style="font-family: 宋体">程序一样，为符合你的类使用的包层次关系的源代码创建文件结构，</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>1．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">的</span><strong><span lang="EN-US">File</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">New</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>2．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Source file name</span></strong><span style="font-family: 宋体">域，输入一个带</span><span lang="EN-US">.java</span><span style="font-family: 宋体">文件扩展的文件名。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>3．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Create source file in this directory</span></strong><span style="font-family: 宋体">域，输入文件夹名。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>4．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">OK</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>5．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在编辑器区域，右击文件，然后点击</span><strong><span lang="EN-US">Insert into project</span></strong><span lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>6．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">选择一个项目。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>7．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><span lang="EN-US">OK</span><span style="font-family: 宋体">。</span></p>
<h3><a name="_Toc125106936"><span style="color: #333399; font-family: 宋体">和</span></a><span><span lang="EN-US" style="color: #333399">BlackBerry IDE</span></span><span><span style="color: #333399; font-family: 宋体">集成源文件管理工具</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal" style="text-indent: 10.5pt"><span style="font-family: 宋体">你可以通过不同的源文件控制程序来使用</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">。</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">允许你为源文件控制程序设置</span><span lang="EN-US">&#8220;check out&#8221;, &#8220;add new file&#8221; </span><span style="font-family: 宋体">和</span><span lang="EN-US">&#8220;revert&#8221;</span><span style="font-family: 宋体">选项。在你为某一特定的源文件控制程序配置好选项后，</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">可以自动</span><span lang="EN-US">check out</span><span style="font-family: 宋体">文件，运行预先设置的命令，恢复改变，以及增加新创建的文件到源文件控制程序里。</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>1．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">的</span><strong><span lang="EN-US">File</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Edit</span></strong><span style="font-family: 宋体">－</span><span lang="EN-US">&gt;<strong>Preferences</strong>.</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>2．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Source Control</span></strong><span lang="EN-US"> </span><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>3．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Check out</span></strong><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>4．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Check out</span></strong><span style="font-family: 宋体">域，输入命令以能打开一个文件来编辑。例如输入：</span></p>
<p class="MsoNormal" style="text-indent: 26.25pt"><span lang="EN-US">p4 edit %1</span></p>
<p class="MsoNormal" style="margin-left: 10.5pt"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注</span></strong><span style="font-family: 宋体">：</span><span lang="EN-US">%1 </span><span style="font-family: 宋体">参数代表了名称和一个文件的绝对路径。例如：对于一个在</span><span lang="EN-US">c:\mypath</span><span style="font-family: 宋体">的</span><span lang="EN-US">foo.java</span><span style="font-family: 宋体">文件，当</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">执行命令</span><span lang="EN-US">checkout %1,</span><span style="font-family: 宋体">时，</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">实际上运行命令</span><span lang="EN-US">checkout c:\mypath\foo.java</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>5．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Add file</span></strong><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>6．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Add new file</span></strong><span style="font-family: 宋体">域，输入命令以增加一个新的文件到源文件控制程序中。例如输入：</span></p>
<p class="MsoNormal" style="margin-left: 10.5pt"><span lang="EN-US"><span>&#160;&#160; </span>p4 add %1</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>7．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;</span></span></span><span style="font-family: 宋体">点击</span> <strong><span lang="EN-US">Revert file</span></strong><span style="font-family: 宋体">标签</span><span lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>8．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;</span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Revert changes</span></strong><span style="font-family: 宋体">域，输入命令撤销一个源文件控制程序中的文件。例如输入：</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>p4 revert %1</span></p>
<p class="MsoNormal" style="margin-left: 28.5pt; text-indent: -18pt"><span lang="EN-US"><span>9．</span></span>&#8211;&gt;<span style="font-family: 宋体">单击</span><strong><span lang="EN-US">OK</span></strong><span style="font-family: 宋体">。</span></p>
<h3><a name="_Toc125106937"><span style="color: #333399; font-family: 宋体">编译项目</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">当你编译项目时，</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">编译你的源文件到</span><span lang="EN-US">Java </span><span style="font-family: 宋体">字节编码（</span><span lang="EN-US">Bytecode</span><span style="font-family: 宋体">）</span><span lang="EN-US">,</span><span style="font-family: 宋体">进行预验证，然后将类打包为一个</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体"><font face="Trebuchet MS">&#160;</font><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注：在</span><span lang="EN-US">Java ME</span><span style="font-family: 宋体">中，字节编码验证分为</span><span lang="EN-US">2</span><span style="font-family: 宋体">个步骤。已经编译的代码在它加载到</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备之前预先验证，因此类加载时</span><span lang="EN-US">BlackBerry </span><span style="font-family: 宋体">设备仅必须进行基本的验证。</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">在编译项目时自动进行预验证。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">当你编译一个项目时，如果需要，</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">也编译项目依赖的任何库。</span></p>
<table class="MsoNormalTable" style="border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #d9d9d9 0% 50%; padding-bottom: 0cm; width: 85.2pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="114">
<p class="MsoNormal" style="text-indent: 10.55pt; text-align: center" align="center"><strong><span style="font-family: 宋体">动作</span><span lang="EN-US"><o:p></o:p></span></strong></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #d9d9d9 0% 50%; padding-bottom: 0cm; width: 145.2pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="194">
<p class="MsoNormal" style="text-align: center" align="center"><strong><span style="font-family: 宋体">过程</span><span lang="EN-US"><o:p></o:p></span></strong></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #d9d9d9 0% 50%; padding-bottom: 0cm; width: 180pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="240">
<p class="MsoNormal" style="text-align: center" align="center"><strong><span style="font-family: 宋体">附加信息</span><span lang="EN-US"><o:p></o:p></span></strong></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 85.2pt; padding-top: 0cm" valign="top" width="114">
<p class="MsoNormal"><span style="font-family: 宋体">编译所有项目</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 145.2pt; padding-top: 0cm" valign="top" width="194">
<p class="MsoNormal"><span lang="EN-US">&gt; </span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Build</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Build All</span></strong></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 180pt; padding-top: 0cm" valign="top" width="240">
<p class="MsoNormal"><span style="font-family: 宋体">为了排除一个项目，设置项目属性。</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 85.2pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="114">
<p class="MsoNormal"><span style="font-family: 宋体">编译所有活动的项目</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 145.2pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="194">
<p class="MsoNormal"><span lang="EN-US">&gt; </span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Build</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Build</span></strong><span style="font-family: 宋体">。</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 180pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="240">
<p class="MsoNormal"><span style="font-family: 宋体">在工作空间，活动的项目名是加粗的。为了改变哪些项目是活动的，在</span><strong><span lang="EN-US">Project</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Set Active Projects</span></strong><span lang="EN-US">.</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 85.2pt; padding-top: 0cm" valign="top" width="114">
<p class="MsoNormal"><span style="font-family: 宋体">编译单一项目</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 145.2pt; padding-top: 0cm" valign="top" width="194">
<ol>
<li>
<div class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span style="font-family: 宋体">选择一个项目</span></div>
</li>
<li>
<div class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span><span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Build</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Build Selected</span></strong><span style="font-family: 宋体">。</span></div>
</li>
</ol>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 180pt; padding-top: 0cm" valign="top" width="240">
<p class="MsoNormal"><span style="font-family: 宋体">―――</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 85.2pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="114">
<p class="MsoNormal"><span style="font-family: 宋体">创建一个工作空间</span><span lang="EN-US">makefile</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 145.2pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="194">
<p class="MsoNormal"><span lang="EN-US">&gt;</span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Build</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Generate Makefile and Resource.</span></strong><span lang="EN-US"> </span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 180pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="240">
<p class="MsoNormal"><span style="font-family: 宋体">―――</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"><o:p><br />
    <br /></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">缺省的，已经编译的</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件使用项目名。为了改变这个名字，双击项目文件，点击</span><strong><span lang="EN-US">Build</span></strong><span style="font-family: 宋体">标签，输入</span><strong><span lang="EN-US">output file name</span></strong><span style="font-family: 宋体">（输出文件名）。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: blue; font-family: 宋体">混淆应用程序</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">和传统的编译器不一样，</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">平台的编译器因为受限的无线环境而优化了。在这里无线环境的目标是最小化应用程序的大小。作为结果的</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件提供了大量的类似于其他真正混淆包的混淆服务，以致能减小</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件本身的大小。例如，下面的信息将从</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件中移除：</span></p>
<ul>
<li><span style="font-family: 宋体">所有调试的信息</span> </li>
<li><span style="font-family: 宋体">本地变量名</span> </li>
<li><span style="font-family: 宋体">源代码的行数</span> </li>
<li><span style="font-family: 宋体">私有方法和成员名</span> </li>
</ul>
<p class="MsoNormal"><span style="font-family: 宋体">同样，</span><span lang="EN-US">RIM</span><span style="font-family: 宋体">相信没有必要为应用程序提供混淆，除了已经存在的</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">平台编译的所有应用程序缺省提供的混淆。事实上，</span><span lang="EN-US">RIM</span><span style="font-family: 宋体">没有对自己的产品进行任何额外的混淆。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">对通过第三方工具混淆的支持没有集成到</span><span lang="EN-US">BlackBerry<span>&#160; </span>JDE .</span><span style="font-family: 宋体">同样，需要一个命令行过程来混淆</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件供</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备上使用。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: blue; font-family: 宋体">混淆一个</span><span lang="EN-US" style="color: blue">.cod</span></strong><strong><span style="color: blue; font-family: 宋体">文件</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>1．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US"><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span><span style="font-family: 宋体">，创建应用程序</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160; <img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" /></span>&lt;&#8211;[if gte vml 1]&gt;<v:shape id="_x0000_i1034" type="#_x0000_t75"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\CONFAC~1.ZHA\LOCALS~1\Temp\msohtml1\01\clip_image011.emz"></v:imagedata><o:lock aspectratio="f" v:ext="edit"></o:lock></v:shape>&lt;![endif]&#8211;&gt;&lt;&#8211;[if !vml]&#8211;&gt;</span><span style="font-family: 宋体">提示：在这个过程中将项目文件放到一个独立的目录中。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>2．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">创建临时的目录</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>3．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">将</span><span lang="EN-US"><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span><span style="font-family: 宋体">创建的</span><span lang="EN-US">jar</span><span style="font-family: 宋体">文件拷贝到一个临时目录。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>4．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">释放</span><span lang="EN-US">.jar</span><span style="font-family: 宋体">文件的内容到一个临时目录。例如，在命令窗口输入下面的命令：</span><strong><span lang="EN-US">*jar xvf SampleApplication.jar</span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>5．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">删除释放为</span><span lang="EN-US">.jar</span><span style="font-family: 宋体">文件部分的</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>6．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">删除</span><span lang="EN-US">.jar</span><span style="font-family: 宋体">文件</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>7．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">混淆在临时目录下包含的类文件。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>8．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">使用下面的命令对临时目录的内容运行预验证工具：</span></p>
<p class="MsoNormal" style="text-indent: 10.55pt"><strong><span lang="EN-US">*preverify.exe -verbose -d . -classpath ..\lib\net_rim_api.jar;<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>9．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在已混淆（和预验证）的类文件上运行</span><strong><span lang="EN-US">rapc</span></strong><span style="font-family: 宋体">来创建一个</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件。使用下面的命令：</span></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>&#160;</span>*rapc.exe -verbose import=..\lib\net_rim_api.jar listing=SampleApplication.lst codename=SampleApplication SampleApplication.rapc C:\yourTempDir\SampleApplication.class<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 10.5pt"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<h3><a name="_Toc125106938"><span style="color: #333399; font-family: 宋体">生成</span></a><span><span lang="EN-US" style="color: #333399">API</span></span><span><span style="color: #333399; font-family: 宋体">文档</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">使用一个</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">宏给代码加入注释。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">一旦启用这个功能，如果你在一个函数声明前的任何一行输入</span><span lang="EN-US">/**</span><span style="font-family: 宋体">，</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">生成下面的注释</span><span lang="EN-US">:</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">/**<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">* <em>&lt;description&gt;.</em><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">* @param menu<em> &lt;description&gt;</em>.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">* @param instance <em>&lt;description&gt;.</em><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">* @return<em> &lt;description&gt;</em>.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">*</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">如果你在其他行输入</span><span lang="EN-US">/**, the BlackBerry IDE </span><span style="font-family: 宋体">生成下面的注释：</span><span lang="EN-US">:</span></p>
<p class="MsoNormal"><span lang="EN-US">/**</span></p>
<p class="MsoNormal"><span lang="EN-US">* <em>&lt;description&gt;</em>.</span></p>
<p class="MsoNormal"><span lang="EN-US">*/</span></p>
<p class="MsoNormal"><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">预先加载</span><em><span lang="EN-US">&lt;description&gt;</span></em><span lang="EN-US">.</span><span style="font-family: 宋体">作为查询字符串，再查询第一个实例，然后选择这个实例，这个特性允许你输入描述，然后按</span><span lang="EN-US">F3</span><span style="font-family: 宋体">转移到后面的参数。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">因为</span><span lang="EN-US">javadocs</span><span style="font-family: 宋体">宏依赖于分解浏览的信息，仅在成功完成一个编译后增加</span><span lang="EN-US">javadocs</span><span style="font-family: 宋体">。如果你的文件包含一个语法错误，并且在上面你正试着插入注释，宏不会得到函数声明。</span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">增加一个新的编辑器宏</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Edit</span></strong><span style="font-family: 宋体">菜单，点击</span><strong><span lang="EN-US">Preferences</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Editor</span></strong><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Macros</span></strong><span style="font-family: 宋体">按钮。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">从</span><strong><span lang="EN-US">When I type</span></strong><strong><span style="font-family: 宋体">下拉列表中，选择</span><span lang="EN-US">/**.</span></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Replace it with</span></strong><span style="font-family: 宋体">文本框里，输入</span><strong><span lang="EN-US">@javadoc</span></strong><span lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>6.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在同一行或者每个函数声明的前一行输入</span><span lang="EN-US">/**</span><span style="font-family: 宋体">。例如，在下面的代码段，在单词</span><span lang="EN-US">&#8221;protected&#8221;</span><span style="font-family: 宋体">开头的插入点输入</span><span lang="EN-US">/**.</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>&#160;</span>/** protected int makeMenu(Menu menu, int instance) { &#8230; }<o:p></o:p></span></p>
<h2><a name="_Toc125106939"><span style="color: #333399; font-family: 黑体">使用命令行</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<p class="MsoNormal"><span lang="EN-US">BlackBerry JDE</span><span style="font-family: 宋体">包含一个命令行编译器</span><span lang="EN-US">RAPC</span><span style="font-family: 宋体">。</span><span lang="EN-US">RAPC</span><span style="font-family: 宋体">编译</span><span lang="EN-US">.java</span><span style="font-family: 宋体">和</span><span lang="EN-US">.jar</span><span style="font-family: 宋体">文件到可以运行在</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备模拟器或者加载到</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备上的</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件。</span></p>
<p class="MsoNormal"><span lang="EN-US">Rapc.exe</span><span style="font-family: 宋体">在</span><span lang="EN-US">BlackBerry JDE</span><span style="font-family: 宋体">安装目录下的</span><span lang="EN-US">Bin</span><span style="font-family: 宋体">下面。</span></p>
<p class="MsoNormal"><span lang="EN-US">RAPC</span><span style="font-family: 宋体">接收下面的命令行选项。</span></p>
<table class="MsoNormalTable" style="border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #d9d9d9 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal" style="text-align: center" align="center"><strong><span style="font-family: 宋体">选项</span><span lang="EN-US"><o:p></o:p></span></strong></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #d9d9d9 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal" style="text-align: center" align="center"><strong><span style="font-family: 宋体">描述</span><span lang="EN-US"><o:p></o:p></span></strong></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm" valign="top" width="284">
<p class="MsoNormal"><span lang="EN-US">import</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm" valign="top" width="284">
<p class="MsoNormal"><span style="font-family: 宋体">指明</span><span lang="EN-US">RIM API</span><span style="font-family: 宋体">和其他依赖的库</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal"><span lang="EN-US">codename</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal"><span style="font-family: 宋体">指明应用程序名（这典型是</span><span lang="EN-US">.jar</span><span style="font-family: 宋体">文件名）</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm" valign="top" width="284">
<p class="MsoNormal"><span lang="EN-US">midlet</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm" valign="top" width="284">
<p class="MsoNormal"><span style="font-family: 宋体">指明应用程序是否是</span><span lang="EN-US">MIDlet</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal"><span lang="EN-US">jad</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal"><span style="font-family: 宋体">指明</span><span lang="EN-US">JAD</span><span style="font-family: 宋体">文件名</span></p>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm" valign="top" width="284">
<p class="MsoNormal"><span lang="EN-US">\filename_1.java[</span><span style="font-family: 宋体">附加</span><span lang="EN-US">.java</span><span style="font-family: 宋体">文件如果需要</span><span lang="EN-US">&gt;]</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm" valign="top" width="284">
<p class="MsoNormal"><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>
</td>
</tr>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal"><span lang="EN-US">\JAR_filename.jar</span></p>
</td>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6 0% 50%; padding-bottom: 0cm; width: 213.05pt; padding-top: 0cm; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" valign="top" width="284">
<p class="MsoNormal"><span style="font-family: 宋体">指明</span><span lang="EN-US">.jar</span><span style="font-family: 宋体">文件名，如果正在编译一个</span><span lang="EN-US">,jar</span><span style="font-family: 宋体">文件。</span></p>
</td>
</tr>
</tbody>
</table>
<h2><a name="_Toc125106940"><span style="color: #333399; font-family: 黑体">使用蓝牙开发环境</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<p class="MsoNormal"><span style="font-family: 宋体">为了利用狼牙开发环境使用</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备模拟器，你需要从</span><span lang="EN-US">CSR</span><span style="font-family: 宋体">（参看</span><span lang="EN-US">http://www.btdesigner.com/devcasira.htm</span><span style="font-family: 宋体">）得到普通开发系统。</span></p>
<h3><a name="_Toc125106941"><span style="color: #333399; font-family: 宋体">利用一个</span></a><span><span lang="EN-US" style="color: #333399">BlackBerry</span></span><span><span style="color: #333399; font-family: 宋体">设备模拟器使用蓝牙开发环境</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>1．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">打开</span><span lang="EN-US">BlackBerry IDE</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>2．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在主菜单，选择</span><strong><span lang="EN-US">Edit</span></strong><span lang="EN-US">&gt;<strong>Preferences</strong>.</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>3．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US">Simulator</span></strong><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>4．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US">Ports</span></strong><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>5．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Communication port type</span></strong><span style="font-family: 宋体">域，选择合适的端口类型（参看</span><span lang="EN-US">Casira Endpoint</span><span style="font-family: 宋体">文档）。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>6．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Serial Port</span><span style="font-family: 宋体">域，输入端口信息。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt"><span lang="EN-US"><span>7．<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">OK</span></strong><span style="font-family: 宋体">。</span></p>
<h2><a name="_Toc125106942"><span style="color: #333399; font-family: 黑体">使用</span><span lang="EN-US" style="color: #333399">Eclipse</span></a><span><span style="color: #333399; font-family: 黑体">开发环境</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<p class="MsoNormal"><span lang="EN-US">Java</span><span style="font-family: 宋体">调试有线协议（</span><span lang="EN-US">Java Debug Wire Protocol, JDWP</span><span style="font-family: 宋体">）的程序为</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">模拟器提供一个接口。当你启动</span><span lang="EN-US">JDWP</span><span style="font-family: 宋体">时，你可以使用第三方集成的开发环境。</span></p>
<h3><a name="_Toc125106943"><span style="color: #333399; font-family: 宋体">启动</span></a><span><span lang="EN-US" style="color: #333399">JDWP</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span lang="EN-US">&gt;</span><span style="font-family: 宋体">点击<strong>开始</strong></span><span lang="EN-US">&gt;</span><strong><span style="font-family: 宋体">程序</span></strong><span lang="EN-US">&gt;<strong>Research In Motion</strong>&gt;<strong>BlackBerry JDE 4.1.0</strong>&gt;<strong>JDWP</strong>.</span></p>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注</span></strong><span style="font-family: 宋体">：在启动</span><span lang="EN-US">JDWP</span><span style="font-family: 宋体">之前，你必须从</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">启动</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备模拟器至少一次。你仅需要启动</span><span lang="EN-US">JDWP</span><span style="font-family: 宋体">一次。为了启动一个设备模拟器，在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">开发环境中，点击</span><strong><span lang="EN-US">Run</span></strong><span lang="EN-US">&gt;<strong>Debug</strong>.</span></p>
<h3><a name="_Toc125106944"><span style="color: #333399; font-family: 宋体">连接</span></a><span><span lang="EN-US" style="color: #333399">Eclipse</span></span><span><span style="color: #333399; font-family: 宋体">开发环境</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注</span></strong><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></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">扩展</span><span lang="EN-US">Sun JRE</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">加入</span><span lang="EN-US">API</span><span style="font-family: 宋体">文档。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">设置</span><span lang="EN-US">Builder</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">设置项目变量。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">扩展</span><span lang="EN-US" style="color: #333399">Sun JRE<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">建立你的工作空间和项目。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">启动</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">平台。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">任务栏，点击</span><strong><span lang="EN-US">Window</span></strong><span lang="EN-US">&gt;<strong>Preferences</strong>.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">扩展</span><strong><span lang="EN-US">Java</span></strong><span style="font-family: 宋体">项。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US">Installed JREs</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>6.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Add</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>7.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Add JRE</span><span style="font-family: 宋体">的窗口的</span><strong><span lang="EN-US">JRE type</span></strong><span style="font-family: 宋体">域，选择</span><strong><span lang="EN-US">Standard VM</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>8.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">JRE name</span></strong><span style="font-family: 宋体">域，为</span><span lang="EN-US">JRE</span><span style="font-family: 宋体">输入一个名字。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>9.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">JRE home directory</span></strong><span style="font-family: 宋体">域，输入</span><span lang="EN-US">Sun JRE</span><span style="font-family: 宋体">的位置。例如：</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-family: &#39;courier new&#39;">C:\Java\jdk1.5.0_02\jre.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>10.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">务必使</span><strong><span lang="EN-US">Use default system libraries</span></strong><span style="font-family: 宋体">域没有选。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>11.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Add External JARs</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>12.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">浏览你的</span><span lang="EN-US">BlackBerry IDE</span><span style="font-family: 宋体">安装目录下的</span><strong><span lang="EN-US">lib</span></strong><span style="font-family: 宋体">目录，例如：</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160; </span></span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>&#160;</span>C:\Program Files\Research In Motion\BlackBerry JDE 4.1.0\lib<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>13.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US">net_rim_api.jar</span></strong><span lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>14.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Open</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="font-size: 12pt; color: #333399; font-family: 宋体">加入</span></strong><strong><span lang="EN-US" style="font-size: 12pt; color: #333399; font-family: arial">API</span></strong><strong><span style="font-size: 12pt; color: #333399; font-family: 宋体">文档</span></strong><strong><span lang="EN-US" style="font-size: 12pt; color: #333399; font-family: arial"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9pt; font-family: 宋体">加入</span><span lang="EN-US" style="font-size: 9pt; font-family: arial">RIM.jar</span><span style="font-size: 9pt; font-family: 宋体">到你的项目。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9pt; font-family: arial">Add JRE</span><span style="font-size: 9pt; font-family: 宋体">窗口，扩展</span><strong><span lang="EN-US" style="font-size: 9pt; font-family: arial">net_rim_api.jar</span></strong><span style="font-size: 9pt; font-family: 宋体">文件。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9pt; font-family: 宋体">选择</span><strong><span lang="EN-US" style="font-size: 9pt; font-family: arial">Javadoc location</span></strong><span lang="EN-US" style="font-size: 9pt; font-family: arial">.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9pt; font-family: arial">Edit</span></strong><span style="font-size: 9pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9pt; font-family: arial">Browser</span></strong><span style="font-size: 9pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>6.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9pt; font-family: 宋体">找到</span><span style="font-size: 9.5pt; font-family: 宋体">找到你的</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">BlackBerry IDE</span><span style="font-size: 9.5pt; font-family: 宋体">目录下的</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">docs\api</span></strong><span style="font-size: 9.5pt; font-family: 宋体">目录。例如：</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>&#160;&#160; </span></span><span lang="EN-US" style="font-size: 9.5pt; font-family: &#39;courier new&#39;">C:\Program Files\Research In Motion\BlackBerry JDE 4.1.0\docs\ap</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">i<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>7.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">OK</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>8.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">OK</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>9.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Installed JREs</span><span style="font-size: 9.5pt; font-family: 宋体">窗口，选择新创建的</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">JRE</span><span style="font-size: 9.5pt; font-family: 宋体">，缺省的是</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">RIM JVM</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><span>10.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Add JRE</span><span style="font-size: 9.5pt; font-family: 宋体">窗口，点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">OK</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt; font-family: arial"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="font-size: 12pt; color: #333399; font-family: 宋体">设置</span></strong><strong><span lang="EN-US" style="font-size: 12pt; color: #333399; font-family: arial">Builder<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Eclipse</span><span style="font-size: 9.5pt; font-family: 宋体">任务栏，点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Project</span></strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">&gt;<strong>Properties</strong>.</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">选择</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Builders</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">New</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Choose configuration type</span><span style="font-size: 9.5pt; font-family: 宋体">窗口，选择</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Program</span></strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">.</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">点击</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">OK</span><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>6.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">New_Builder</span><span style="font-size: 9.5pt; font-family: 宋体">窗口属性的</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Name</span></strong><span style="font-size: 9.5pt; font-family: 宋体">域，为你的</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Builder</span><span style="font-size: 9.5pt; font-family: 宋体">输入一个名字。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>7.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Location</span></strong><span style="font-size: 9.5pt; font-family: 宋体">域，点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Browser File System</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>8.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">找到你的</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">BlackBerry IDE</span><span style="font-size: 9.5pt; font-family: 宋体">目录下的</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Bin</span></strong><span style="font-size: 9.5pt; font-family: 宋体">目录，例如：</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>&#160;</span></span><span lang="EN-US" style="font-size: 9.5pt; font-family: &#39;courier new&#39;">C:\Program Files\Research In Motion\BlackBerry JDE 4.1.0\bin<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>9.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">选择</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">rapc.exe</span></strong><span style="font-size: 9.5pt; font-family: 宋体">文件。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>10.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Open</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">设置项目变量</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Working Directory</span></strong><span style="font-family: 宋体">域，点击</span><strong><span lang="EN-US">Variables</span></strong><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Select Variable</span><span style="font-family: 宋体">窗口，选择</span><strong><span lang="EN-US">build project</span></strong><span lang="EN-US">.</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">OK</span></strong><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Arguments</span></strong><span style="font-family: 宋体">域，输入：</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>&#160;</span>-quiet [desired space separated java, class, jar, or jad files] import=&#8221;C\Program Files\Research In Motion\BlackBerry JDE 4.1.0\lib\net_rim_api.jar&#8221; codename=C:\Development\ProjectName<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">例如：</span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-family: &#39;courier new&#39;">-quiet C:\Development\TestProject\*.java import=&#8221;C:\Program Files\Research In Motion\BlackBerry JDE 4.1.0\lib\net_rim_api.jar&#8221; codename=C:\Development\TestProject.<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">OK</span></strong><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>6.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">New_Builder</span><span style="font-size: 9.5pt; font-family: 宋体">窗口属性里，点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Build Options</span></strong><span style="font-size: 9.5pt; font-family: 宋体">标签。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>7.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Run the builder</span><span style="font-size: 9.5pt; font-family: 宋体">部分，验证下面的选项是否选择了。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<ul>
<li><span lang="EN-US" style="font-size: 9.5pt; font-family: wingdings"><span><span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;</span></span></span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">After a </span></strong><strong><span lang="EN-US" style="font-size: 9.5pt">&#8220;</span></strong><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">Clean</span></strong><strong><span lang="EN-US" style="font-size: 9.5pt">&#8221;</span></strong><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></strong> </li>
<li><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">During manual builds<o:p></o:p></span></strong> </li>
<li><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">During auto builds</span></strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span> </li>
</ul>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>8.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">OK</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><span>9.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-size: 9.5pt; font-family: 宋体">在属性窗口，点击</span><strong><span lang="EN-US" style="font-size: 9.5pt; font-family: arial">OK</span></strong><span style="font-size: 9.5pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 9.5pt; font-family: arial"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注</span></strong><span style="font-family: 宋体">：</span><span lang="EN-US">RAPC</span><span style="font-family: 宋体">不支持通配符，如果输入的路径发生错误，使用空格分隔文件列。例如将</span><strong><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;">C:\Development\TestProject\*.java</span></strong><span lang="EN-US" style="font-size: 10pt"> </span><span style="font-family: 宋体">代替为</span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;">C:\Development\A.java C:\Development\B.java</span></strong><span lang="EN-US">.</span></p>
<h3><a name="_Toc125106945"><span style="color: #333399; font-family: 宋体">设置连接时间</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">当在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">开发环境里调试时，为了阻止连接超时，为正在调试的程序设置超时连接值。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">的任务栏，点击</span><strong><span lang="EN-US">Windows</span></strong><span lang="EN-US">&gt;<strong>Preferences</strong>.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">扩展</span><strong><span lang="EN-US">Java</span></strong><span style="font-family: 宋体">项。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US">Debug</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Communication</span></strong><span style="font-family: 宋体">部分的</span><strong><span lang="EN-US">Debugger timeout</span></strong><span style="font-family: 宋体">域，输入值。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Launch timeout</span></strong><span style="font-family: 宋体">域输入值。</span></p>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注</span></strong><span style="font-family: 宋体">：你在</span><strong><span lang="EN-US">Debugger timeout</span></strong><span style="font-family: 宋体">和</span><strong><span lang="EN-US">Launch timeout</span></strong><span style="font-family: 宋体">设置的值依赖你的计算机处理速度。如果设置这些域之后连接问题继续出现，增加超时的值。</span></p>
<h3><a name="_Toc125106946"><span style="color: #333399; font-family: 宋体">使用</span></a><span><span lang="EN-US" style="color: #333399">Eclipse</span></span><span><span style="color: #333399; font-family: 宋体">开发环境进行调试</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Run</span></strong><span lang="EN-US">&gt;<strong>Debug</strong>.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US">Remote Java Application</span></strong><span lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">New</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Source</span></strong><span style="font-family: 宋体">标签。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>5.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">确认你的程序是否列出。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>6.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Close</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>7.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">打开</span><strong><span lang="EN-US">JDWP</span></strong><span style="font-family: 宋体">程序，为了得到更多信息，参看</span><span lang="EN-US">27</span><span style="font-family: 宋体">页的&#8220;启动</span><span lang="EN-US">JDWP</span><span style="font-family: 宋体">&#8220;。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>8.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">任务栏，点击</span><strong><span lang="EN-US">Run</span></strong><span lang="EN-US">&gt;<strong>Debug</strong>.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>9.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><strong><span lang="EN-US">Remote Java Applicatio</span></strong><span lang="EN-US">n</span><span style="font-family: 宋体">项下面，选择一个应用程序。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US"><span>10.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">点击</span><strong><span lang="EN-US">Debug</span></strong><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注</span></strong><span style="font-family: 宋体">：如果出现下面的错误信息：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">&#8220;Failed to connect to remote VM. Connection timed out&#8221;</span><span lang="EN-US">,</span><span style="font-family: 宋体">增加调试超时时间。为得到更多信息参看</span><span lang="EN-US">29</span><span style="font-family: 宋体">页的</span><span lang="EN-US">&#8221;</span><span style="font-family: 宋体">设置连接时间</span><span lang="EN-US">&#8221;.</span></p>
<h2><a name="_Toc125106947"><span style="color: #333399; font-family: 黑体">编程指南</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h2>
<h3><a name="_Toc125106948"><span style="color: #333399; font-family: 宋体">编写高效的代码</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用本地变量</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">不管什么时候，尽量使用本地变量。访问本地变量比访问类的成员高效。</span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用速记判断</span><span lang="EN-US" style="color: #333399">Boolean</span></strong><strong><span style="color: #333399; font-family: 宋体">条件</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">为了代替第一个例子中没有必要的判断</span><span lang="EN-US">Boolean</span><span style="font-family: 宋体">条件，使用第二个例子中的速记。最后编译的代码会更短：</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( boolean_expression == </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">true</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">true</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">else</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;</span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Do this</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( boolean_expression );</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-left: 21pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使类为</span><span lang="EN-US" style="color: #333399">final<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 宋体"><span>&#160;</span></span><span style="font-family: 宋体">当你创建一个代码库时，如果你知道他们永远不会被扩展，那么将他们标记为<span lang="EN-US">final</span>。<span lang="EN-US">final</span>关键字的出现允许编译器生成更高效的代码。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 宋体"><span>&#160; </span></span><span lang="EN-US"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" /></span><strong><span style="font-family: 宋体">注</span></strong><span style="font-family: 宋体">：缺省，</span><span lang="EN-US">BlackBerry JDE</span><span style="font-family: 宋体">编译器标记你应用程序</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件中不会扩展的类为</span><span lang="EN-US">final</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用</span><span lang="EN-US" style="color: #333399">int</span></strong><strong><span style="color: #333399; font-family: 宋体">代替</span><span lang="EN-US" style="color: #333399">long<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">在</span><span lang="EN-US">Java</span><span style="font-family: 宋体">中，一个</span><span lang="EN-US">long</span><span style="font-family: 宋体">代表的是</span><span lang="EN-US">64</span><span style="font-family: 宋体">位的整数。因为</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备使用的是一个</span><span lang="EN-US">32</span><span style="font-family: 宋体">位的处理器，如果你是用</span><span lang="EN-US">int</span><span style="font-family: 宋体">代替</span><span lang="EN-US">long</span><span style="font-family: 宋体">，操作将会快</span><span lang="EN-US">2</span><span style="font-family: 宋体">－</span><span lang="EN-US">4</span><span style="font-family: 宋体">倍。</span><span lang="EN-US" style="font-family: 宋体"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 宋体"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免垃圾回收</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">避免调用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">System.gc()</span><span style="font-family: 宋体">进行垃圾回收。这个操作会占用许多时间，特别是在内存受限的</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备上。让虚拟机进行垃圾回收。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">对字符串使用静态变量</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">当定义<span lang="EN-US">String</span>类型的静态字段（也成类字段），可以用静态变量（非<span lang="EN-US">final</span>）代替常量（<span lang="EN-US">final</span>）加快程序速度。反之，对于原始数据类型，例如<span lang="EN-US">int</span>，也成立。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">例如，你可能创建一个如下的<span lang="EN-US">String</span>对象： </span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">static</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">final</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> String x = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot;example&quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">;</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="font-family: 宋体"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">对于这个静态常量（由<span lang="EN-US">final</span>关键字标识），你使用常量的每个时候都会创建一个临时的</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">String</span><span style="font-family: 宋体">对象。在字节代码中，编译器去掉<span lang="EN-US">&#8221;x&#8221;</span>，代替它的是字符串&#8220;<span lang="EN-US">example&#8221;,</span>以致每次引用<span lang="EN-US">&#8221;x&#8221;</span>时<span lang="EN-US">VM</span>都会进行一次哈希表查询。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">相比之下，度于静态变量<span lang="EN-US">(</span>非<span lang="EN-US">final</span>关键字<span lang="EN-US">)</span>，字符串只创建一次。仅当初始化&#8220;<span lang="EN-US">x&#8221;</span>时，<span lang="EN-US">VM</span>才进行哈希表查询。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注：</span></strong><span style="font-family: 宋体">你可以使用公共常量（也就是</span><span lang="EN-US">final</span><span style="font-family: 宋体">字段），但是标记变量为私有。</span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免</span><span lang="EN-US" style="color: #333399">String(String)</span></strong><strong><span style="color: #333399; font-family: 宋体">的构造子</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">避免使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">java.lang.String(String)</span><span style="font-family: 宋体">构造子，因为它创建了一个没有必要的</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">String</span><span style="font-family: 宋体">对象，这个对象是作为参数提供的一个字符串的拷贝。因为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">String</span><span style="font-family: 宋体">对象创建后不可以修改，所以拷贝典型没有必要。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注：</span></strong><span style="font-family: 宋体">当使用字符串构造子时，编译器会由警告。</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">String str = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> String(</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot;abc&quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">); </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 宋体">避免</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">String str = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">new</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> String(</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot;found &quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> + n + </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot; items&quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">); </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 宋体">避免</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;">.</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-left: 10.5pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></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" style="font-family: &#39;courier new&#39;">java.lang.String</span><span style="font-family: 宋体">类的对象。换言之，你可以编写如下面的代码来创建一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">String</span><span style="font-family: 宋体">。</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">String str = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot;abc&quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 宋体">建议</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">String str = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot;found &quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> + n + </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: &#39;courier new&#39;">&quot; items&quot;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 宋体">建议</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">.</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-left: 10.5pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">编写有效的循环</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">在一个循环外考虑循环不变的代码。</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">//</span><span style="font-size: 10pt; color: #3f7f5f; font-family: 宋体">避免</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> i = 0; i &lt; vector.size(); i++ ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">在这个实现中，在每次的迭代中</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">vector.size()</span><span style="font-family: 宋体">被调用，这是低效的。如果你的容器可能不止一个元素，将容器的大小赋值给本地变量。下面的代码移除了</span><span style="font-family: 宋体">循环不变的代码</span><span lang="EN-US">:</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 宋体">建议</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> size = vector.size();</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> i = 0; i &lt; size; ++i ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">另外，如果你迭代的项的顺序并不重要，你可以向后迭代来避免栈上多余的本地变量，并且可以使比较更加快速。</span><span style="font-family: &#39;Courier New&#39;"> <span lang="EN-US"><o:p></o:p></span></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> i = vector.size() - 1; i &gt;= 0; &#8211;i ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">优化子表达式</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">假如你使用相同的表达式</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">2</span><span style="font-family: 宋体">次，不要依赖编译器为你优化。使用本地变量，如下代码：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">one( i+1 ); two( i+1 ); </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> tmp = i+1; one( tmp ); two( tmp ); </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><strong><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><span lang="EN-US" style="color: #333399"><o:p>&#160;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">优化除法操作</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">除法操作在</span><span lang="EN-US"><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span style="font-family: 宋体">设备上可能慢，因为处理器没有硬件触发指令。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">在你的代码中，当一个正数除以</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">2</span><span style="font-family: 宋体">时，使用向右移一位</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">(&gt;&gt;1)</span><span style="font-family: 宋体">代替</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">.</span><span style="font-family: 宋体">仅当你知道你正在处理的正数时使用&#8220;向右移位&#8221;（</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">&gt;&gt;</span><span style="font-family: 宋体">）</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">.<o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">midpoint = width / 2; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> = width &gt;&gt; 1; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免</span></strong><strong><span lang="EN-US" style="color: #333399; font-family: &#39;courier new&#39;">java.util.Enumeration<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">避免使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">java.util.Enumeration</span><span style="font-family: 宋体">对象，除非你想隐藏数据（换句话说，为了返回一个数据的枚举代替数据本身。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> (Enumeration e = v.elements(); e.hasMoreElements();) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">o = e.nextElement();</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">为一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">Enumeration</span><span style="font-family: 宋体">对象请求一个向量或者哈希表速度慢，并且创建了不必要的垃圾。代替它的是，迭代元素本身，如下面的例子：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> i = v.size() - 1; i &gt;=0; &#8211;i ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">o = v.elementAt( i );</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">如果向量可能被其他线程修改，同步迭代，如下例子所示：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">synchronized</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( v ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">for</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> i = v.size() - 1; i &gt;=0; &#8211;i ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>o = v.elementAt( i );</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><span style="font-family: 宋体"><img height="31" alt="" src="http://www.cnblogs.com/images/cnblogs_com/confach/bb_doc_info.GIF" width="34" />注：</span></strong><span lang="EN-US">Java SE</span><span style="font-family: 宋体">使用一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">Iterator</span><span style="font-family: 宋体">对象实现类似的功能，但是</span><span lang="EN-US">iterator</span><span style="font-family: 宋体">在</span><span lang="EN-US">Java ME</span><span style="font-family: 宋体">不可用。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用</span><span lang="EN-US" style="color: #333399">instanceof</span></strong><strong><span style="color: #333399; font-family: 宋体">进行转型</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">instanceof</span><span style="font-family: 宋体">代替捕捉一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">ClassCastException</span><span style="font-family: 宋体">异常来判断转型是否成功。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">try</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">{</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>(String)x.whatever();</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">catch</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( ClassCastException e ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( x </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> String ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>(String)x.whatever();</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>} </span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">else</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">instanceof</span><span style="font-family: 宋体">比用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">try/catch</span><span style="font-family: 宋体">要快。当转型失败发生异常时才使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">try/catch</span><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">在紧跟由一个</span><span lang="EN-US">instanceof</span><span style="font-family: 宋体">检查的条件语句的第一个代码块里，</span><span lang="EN-US"><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span><span style="font-family: 宋体">编译器和虚拟机被优化为仅对一个类检查。</span><span style="font-family: 宋体">在由一个</span><span lang="EN-US">instanceof</span><span style="font-family: 宋体">检查的条件语句后面的转型利用了这个优化。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">例如，编译器可以优化第一个例子，但是第二个不能</span><span lang="EN-US">:</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ( a </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> &lt;type&gt; ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>&lt;type&gt; instance = (&lt;type&gt;)a;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>x.method(instance);</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>instance.method(x, y, z);</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( a </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> &lt;type&gt; ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>x.method( (&lt;type&gt;)a );</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><strong><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用</span><span lang="EN-US" style="color: #333399">instanceof</span></strong><strong><span style="color: #333399; font-family: 宋体">判断条件</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>&#160;</span></span><span style="font-family: 宋体">为了编写较小而快的代码，如果使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">instanceof</span><span style="font-family: 宋体">判断条件，不要显式判断一个变量是否为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">。当</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">&#8221;e&#8221;</span><span style="font-family: 宋体">为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">时，表达式</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">e instanceof &lt;type&gt;</span><span style="font-family: 宋体">判断为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">false</span><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( e != </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">null</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> &amp;&amp; e </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ExampleClass ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( e == </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">null</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> || ! ( e </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ExampleClass)</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( e </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ExampleClass ) { &#8230; }</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( ! ( e </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> ExampleClass ) ) { &#8230; }</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-left: 10.5pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免使用</span><span lang="EN-US" style="color: #333399">StringBuffer.append(StringBuffer)<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;">CLDC</span><span style="font-family: 宋体">不包含</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">StringBuilder.append(StringBuilder)</span><span style="font-family: 宋体">方法。采用将一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">string buffer</span><span style="font-family: 宋体">加到另一个的方法会创建一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">String</span><span style="font-family: 宋体">的中间对象。代替它的是，应用程序可以使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">net.rim.device.api.util.StringUtilities.append( StringBuffer dst, StringBuffer src[, int offset, int length ] ).<o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">synchronized</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> StringBuffer append(Object obj) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> append(String.valueOf(obj));</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">synchronized</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> StringBuffer append(Object obj) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> (obj </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">instanceof</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> StringBuffer) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>StringBuffer sb = (StringBuffer)obj;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>net.rim.device.api.util.StringUtilities.append( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">this</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">, sb, 0, sb )</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">this</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> append(String.valueOf(obj));</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<h3><a name="_Toc125106949"><span style="color: #333399; font-family: 宋体">减小代码大小</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">当编写应用程序时可以采用下面的指南来减小编译后代码的大小。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">设置适合的访问方式</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">当你创建代码库时，为字段和方法使用合适的访问权限可以显著减小编译后代码的大小。特殊的是，完成以下操作</span><span lang="EN-US">:</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-family: wingdings"><span>l<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">不管什么时候，只要可能就将字段声明为</span><span lang="EN-US">private</span><span style="font-family: 宋体">。除了好的编码实践外，这可以使编译器优化</span><span lang="EN-US">.cod</span><span style="font-family: 宋体">文件。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-family: wingdings"><span>l<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">当可能时，使用缺省（包）的访问方式来代替</span><span lang="EN-US">public</span><span style="font-family: 宋体">访问（也就是，忽略</span><span lang="EN-US">public</span><span style="font-family: 宋体">和</span><span lang="EN-US">protected</span><span style="font-family: 宋体">关键字）</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免创建接口</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">当创建</span><span lang="EN-US">API</span><span style="font-family: 宋体">库时，避免创建接口，除非你预知</span><span lang="EN-US">API</span><span style="font-family: 宋体">的多个实现。接口会产生更大更慢的代码。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用内部的静态类</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">当创建一个内部的类隐藏一个在其他类里的类时，但是内部类没有引用外部类对象，声明这个内部类为</span><span lang="EN-US">static</span><span style="font-family: 宋体">。这个操作压缩了对外部类引用的创建。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">例如，下面的代码需要一个对外部类对象的引用。</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> outer {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: &#39;courier new&#39;">i</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> inner {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>inner() {}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> example() { </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">return</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: &#39;courier new&#39;">i</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; }</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">比较而言，下面的代码仅仅定义了内部类名的范围：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> outer {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">static</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> inner {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">前一个例子是下面的缩写版本：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> outer {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> outer$inner {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">&#8230;</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">当在内部类的方法里需要访问外部类数据时，仅仅使用一个非静态的内部类。如果为命名范围使用一个类，那么使这个类为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">static</span><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免没有必要的初始化</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">在类里避免没有必要的字段初始化，这些类里，字段有缺省值。如果在一个类里没有初始化一个字段，它会自动使用下面的缺省值初始化字段。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-family: wingdings"><span>l<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">对象引用初始化为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-family: wingdings"><span>l<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span lang="EN-US" style="font-family: &#39;courier new&#39;">int,byte</span><span style="font-family: 宋体">或</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">long</span><span style="font-family: 宋体">初始化为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">0<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt"><span lang="EN-US" style="font-family: wingdings"><span>l<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span lang="EN-US" style="font-family: &#39;courier new&#39;">boolean</span><span style="font-family: 宋体">初始化为</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">false<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">例如，下面的代码段没有不同</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">:<o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> BadExample {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: &#39;courier new&#39;">fieldsCount</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> = 0; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> Field _fieldWithFocus = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">null</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: &#39;courier new&#39;">_validLayout</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> = </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">false</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">class</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> BetterExample {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: &#39;courier new&#39;">fieldsCount</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> Field _fieldWithFocus; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">private</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">boolean</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><span lang="EN-US" style="font-size: 10pt; color: #0000c0; font-family: &#39;courier new&#39;">_validLayout</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">; </span><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"><img height="23" alt="" src="http://www.cnblogs.com/confach/admin/$clip_image014.gif" width="31" v:shapes="_x0000_i1044" /></span><strong><span style="font-family: 宋体">注</span><span lang="EN-US">:</span></strong><span style="font-family: 宋体">在一个方法里，必须显式初始化本地变量。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">导入单独的类</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US"><span>&#160;</span></span><span style="font-family: 宋体">一个应用程序仅使用了来自一个包的少量的类，这个程序应该导入单独的类，而不是整个库。</span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Avoid.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.blackberry.api.browser.*;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f7f5f; font-family: &#39;courier new&#39;">// Prefer.</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">import</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> net.rim.blackberry.api.browser.Browser;</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<h3><a name="_Toc125106950"><span style="color: #333399; font-family: 宋体">在</span></a><span><span lang="EN-US" style="color: #333399">BlackBerry</span></span><span><span style="color: #333399; font-family: 宋体">设备上使用时间</span></span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><span style="font-family: 宋体">在对时间敏感的应用程序里，不要为任何事物依赖时间区域，除了显示本地时间给用户。</span></p>
<p class="MsoNormal"><strong><span lang="EN-US" style="color: #333399">BlackBerry </span></strong><strong><span style="color: #333399; font-family: 宋体">设备钟</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备操作系统从</span><span lang="EN-US">January 1, 1970 (UTC)</span><span style="font-family: 宋体">的午夜以毫秒来计算绝对时间。时间一般以</span><span lang="EN-US">CPU</span><span style="font-family: 宋体">周期或毫秒来计量的。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">系统时间区域改变</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">如果因为性能原因正在缓存对时间敏感的对象，那么记住</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备上的系统时间区域可能会改变。</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">当时间区域改变时，系统会发送一个全局的事件消息给应用程序。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">GlobalEventListener</span><span style="font-family: 宋体">的实现，包括</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">eventOccurred()</span><span style="font-family: 宋体">，会接受这个事件。利用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">invoking Application.addGlobalEventListener()</span><span style="font-family: 宋体">注册你的实现。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">public</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">void</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> eventOccurred( </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">long</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> guid, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> data0, </span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">int</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> data1, Object object0,Object object1 ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span></span><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">if</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">( guid == DateTimeUtilities.GUID_TIMEZONE_CHANGED ) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>_cal.setTimeZone( TimeZone.getDefault() );</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span>}</span><strong><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">决定手持设备上的网络时间</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">调用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">RadioInfo.GetNetworkTime(long deviceTime)</span><span style="font-family: 宋体">得到以毫秒计量的对应网络报告时间，然后调整本地时间。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">deviceTime</span><span style="font-family: 宋体">参数代表现在的毫秒级时间。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<h3><a name="_Toc125106951"><span style="color: #333399; font-family: 宋体">建议的实践</span></a><span lang="EN-US" style="color: #333399"><o:p></o:p></span></h3>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用多线程</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">有效的利用</span><span lang="EN-US"><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a></span><span style="font-family: 宋体">操作系统多线程的能力。特殊地，为网络连接或长操作（大于</span><span lang="EN-US">0.1</span><span style="font-family: 宋体">秒）创建线程。为监听者使用背后（</span><span lang="EN-US">Background</span><span style="font-family: 宋体">）线程，或者当程序启动时使用在背后运行地其他进程。</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">最小化内存地使用</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">为了最小化运行时内存，使用下面地指南</span><span lang="EN-US">:</span></p>
<ul>
<li><span style="font-family: 宋体">使用原始类型（如</span><span lang="EN-US">int</span><span style="font-family: 宋体">或</span><span lang="EN-US">Boolean</span><span style="font-family: 宋体">）代替对象（如</span><span lang="EN-US">String</span><span style="font-family: 宋体">或</span><span lang="EN-US">Integer</span><span style="font-family: 宋体">）。</span> </li>
<li><span style="font-family: 宋体">不要全部依赖垃圾回收。避免快速地创建多个对象。当完成使用他们时，将对象引用设置为</span><span lang="EN-US">null</span><span style="font-family: 宋体">。尽可能重用对象。</span> </li>
<li><span style="font-family: 宋体">将大地操作一到</span><span lang="EN-US">Server</span><span style="font-family: 宋体">上，例如，在发送数据到</span><span lang="EN-US">BlackBerry</span><span style="font-family: 宋体">设备之前，完成对数据地过滤或排序。</span> </li>
</ul>
<p class="MsoNormal"><span lang="EN-US"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免返回</span><span lang="EN-US" style="color: #333399">null<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">如果你正在编写一个公共地方法返回一个对象，仅在下面地条件下它可以返回一个</span><span lang="EN-US">null</span><span style="font-family: 宋体">：</span></p>
<ul>
<li><span style="font-family: 宋体">在正常地程序运行期间，</span><span lang="EN-US">null</span><span style="font-family: 宋体">对象时期望的。</span> </li>
<li><span lang="EN-US" style="font-family: &#39;courier new&#39;">Javadoc @return</span><span style="font-family: 宋体">参数描述了</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">是一个可能的返回值。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span> </li>
</ul>
<p class="MsoNormal"><span style="font-family: 宋体">如果一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">返回值不是正常期望的，那么程序将抛出一个合适的异常强迫调用者显式的处理这个问题。调用者不期望检验一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">的返回值，除非文档说明了。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">避免传递</span><span lang="EN-US" style="color: #333399">null</span></strong><strong><span style="color: #333399; font-family: 宋体">给方法</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">不要传递一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">参数给</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">API</span><span style="font-family: 宋体">方法，除非</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">API</span><span style="font-family: 宋体">引用显式说明了方法支持他们。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">小心传递</span><span lang="EN-US" style="color: #333399">null</span></strong><strong><span style="color: #333399; font-family: 宋体">参数给构造子</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">当传递</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">参数给构造子时，为了避免混淆，将</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">转化为合适的对象：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>&#160;</span>new someObject ( (someObject)null );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">如果一个类有两个或多个构造子，传递</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">参数可能不会唯一识别哪一个构造子将会使用。结果编译器会报错。在</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">API</span><span style="font-family: 宋体">参考里，并不是所有的构造子都会出现，因为有些构造子仅供内部使用。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">通过转化</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">null</span><span style="font-family: 宋体">为合适的对象，你可以明确指明编译器会使用哪一个构造子。如果后续的</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">API</span><span style="font-family: 宋体">发行版本增加了新的构造子，它也可向前兼容。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">使用</span><span lang="EN-US" style="color: #333399">long</span></strong><strong><span style="color: #333399; font-family: 宋体">标记</span></strong><strong><span style="color: #333399; font-family: 宋体">唯一标志符</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">使用一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">long</span><span style="font-family: 宋体">的标志符代替</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">String</span><span style="font-family: 宋体">标志符来标记唯一的常数，如</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">GUID</span><span style="font-family: 宋体">，哈希表键值，以及状态或上下文标志。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">对于跨越第三方应用程序的标志符，为了保留其独立性，使用基于</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">string</span><span style="font-family: 宋体">生成的哈希生成的键值。在输入字符串里，包含了足够的信息提供唯一性。例如，使用一个完全信任的包名，如</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">com.rim.samples.docs.helloworld</span><span style="font-family: 宋体">。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">转化一个</span><span lang="EN-US" style="color: #333399">string</span></strong><strong><span style="color: #333399; font-family: 宋体">为</span><span lang="EN-US" style="color: #333399">long<o:p></o:p></span></strong></p>
<p class="MsoNormal" style="margin-left: 26.25pt; text-indent: -21pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>1.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">在</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><a title="" href="http://confach.cnblogs.com/category/36451.html">BlackBerry</a> IDE</span><span style="font-family: 宋体">文本编辑器里，输入一个字符串。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 26.25pt; text-indent: -21pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>2.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">选择字符串。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 26.25pt; text-indent: -21pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>3.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">右击字符串。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 26.25pt; text-indent: -21pt"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><span>4.<span style="font: 7pt &#39;Times New Roman&#39;; font-stretch: normal; font-size-adjust: none">&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体">选择</span><strong><span lang="EN-US" style="font-family: &#39;courier new&#39;">Convert&#8221;String&#8221; to Long</span></strong><span lang="EN-US" style="font-family: &#39;courier new&#39;">.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">正确退出应用程序</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">在调用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">System.exit(int status)</span><span style="font-family: 宋体">之前，你的程序应该完成任何清理，例如移除在运行时存储的程序不在需要的对象。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p>&#160;</o:p></span></p>
<p class="MsoNormal"><strong><span style="color: #333399; font-family: 宋体">打印栈跟踪（</span><span lang="EN-US" style="color: #333399">Stack trace</span></strong><strong><span style="color: #333399; font-family: 宋体">）</span><span lang="EN-US" style="color: #333399"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span style="font-family: 宋体">当</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">VM</span><span style="font-family: 宋体">发现代码使用</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">catch(Exception e)</span><span style="font-family: 宋体">捕获异常时，</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">VM</span><span style="font-family: 宋体">优化为排除栈跟踪。如果捕获到</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">Throwable</span><span style="font-family: 宋体">，它不会排除栈跟踪。</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">例如，下面的代码不会排除栈跟踪</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">:<o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">catch</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> (IOException e) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>e.printStackTrace()</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">为了打印栈跟踪，编写类似下面的代码：</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<table class="MsoTableGrid" style="background: #e6e6e6 0% 50%; border-collapse: collapse; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 426.1pt; padding-top: 0cm" valign="top" width="568">
<p class="MsoNormal" style="text-align: left" align="left"><strong><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: &#39;courier new&#39;">catch</span></strong><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"> (Throwable t) {</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;"><span>&#160;&#160;&#160; </span>t.printStackTrace();</span><span lang="EN-US" style="font-size: 10pt; font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: &#39;courier new&#39;">}</span><span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-family: 宋体">当你调试时为了查看栈跟踪，捕获一个</span><span lang="EN-US" style="font-family: &#39;courier new&#39;">Throwable</span><span style="font-family: 宋体">实例。</span></p>
<ul>
<li>
<div class="MsoNormal" style="color: red; font-style: italic">Last Updated:2007-01-05<span lang="EN-US" style="font-family: &#39;courier new&#39;"><o:p></o:p></span> </div>
</li>
<li>
<div class="MsoNormal" style="color: red; font-style: italic">Last Updated:2006-12-30 </div>
</li>
<li><span style="color: red; font-style: italic">Last Updated:2006-03-24</span>
<p></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.inblackberry.com/web/development/docs/developer-guide-vol-1-charpter-2-write-an-java-app.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.901 seconds -->
