??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲天堂男人天堂,亚洲AV永久青草无码精品,国产亚洲精品美女久久久久http://m.tkk7.com/yifeng/category/34014.html光是知道是不够的Q必要加以应用Q光是希望是不够的,非去做不可?/description>zh-cnSun, 13 Dec 2009 02:18:37 GMTSun, 13 Dec 2009 02:18:37 GMT60IntelliJ IDEA 9.0 Releasedhttp://m.tkk7.com/yifeng/archive/2009/12/10/305363.html忆风忆风Thu, 10 Dec 2009 01:24:00 GMThttp://m.tkk7.com/yifeng/archive/2009/12/10/305363.htmlhttp://m.tkk7.com/yifeng/comments/305363.htmlhttp://m.tkk7.com/yifeng/archive/2009/12/10/305363.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/305363.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/305363.html

What's New in Version 9

This release delivers many major updates to IntelliJ IDEA including better performance, support for Java EE 6 and other new frameworks, lots of productivity improvements in the editor, a more streamlined user interface and much more.

   

Please visit http://www.jetbrains.com/idea/whatsnew/index.html for detail!




忆风 2009-12-10 09:24 发表评论
]]>
IntelliJ IDEA Completion featureshttp://m.tkk7.com/yifeng/archive/2009/10/28/300007.html忆风忆风Wed, 28 Oct 2009 01:19:00 GMThttp://m.tkk7.com/yifeng/archive/2009/10/28/300007.htmlhttp://m.tkk7.com/yifeng/comments/300007.htmlhttp://m.tkk7.com/yifeng/archive/2009/10/28/300007.html#Feedback1http://m.tkk7.com/yifeng/comments/commentRss/300007.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/300007.html

Completion features

Feature list isn't complete, this page is subject to change.

There are three completion types:

Logical nameShortcut
Basic Ctrl+Space
Smart (SmartType) Ctrl+Shift+Space
Class Name Ctrl+Alt+Space

Pressing the same shortcut twice results in 'second' completion, which may give more variants.

The New! mark means a feature is available in Maia only.

All languages

You may choose item in completion list not only with Enter, but also with variety of other keys: spacedotcolonsemicolon, '(' etc. Basically this will result in inserting that character after the completed identifier, but sometimes more will be done. For example, finishing Java method call with '(' will, of course, insert also ')'.

Choosing item with Tab has special meaning. In this case, if you are inside identifier, it will be overwritten completely instead of just inserting the item string into caret position.

Class Name completion works everywhere and typically displays all class names that are accessible from the current location. On second invocation it displaysall the classes that may become visible if you change their access modifiers or add necessary module dependencies.

New! If you don't like some suggested classes and you don't want to see it anymore, you may easily exclude it from import and completion.

Java

Basic

  • Context-specific reference and keyword completion, inserts parentheses, semicolons etc. where necessary.
  • Variable/method name suggestion based on type name, super methods and unresolved references in context file
  • Getter/setter name completion based on class fields
  • Property name/file path in string literal
  • Second:
    • Inaccessible members (e.g. private fields) are shown.
    • If prefix starts with an uppercase letter, shows all classes (like Class Name completion). Suggested in first completion invocation if there were no matching variants.

Smart

  • Performs reference variants filtering based on expected type. If say an int is expected, only the variables/fields/methods of int type will be suggested.
  • New! If there is a one-element array of expected type (like the one created automatically to communicate with inner classes), and its name is say ref, then ref[0] is completed.
  • After new suggests all the classes descending from the expected type, inserts parentheses, if the selected class is abstract, will generate anonymous class body and suggest methods to implement.
  • After throw new suggests only the runtime exceptions merged with those explicitly declared in throws-clause.
  • In Javadoc throws tag suggests exceptions from method's throws-clause.
  • After catch suggests the exceptions that are thrown inside try.
  • After instanceof suggests inheritors of the checked expression type.
  • When Class<? extends X> is expected, suggests Class<Y> for all Y inheriting from X.
  • Completes generic parameters where missing: List<String> l = new ArrayList<|>();
  • Inserts explicit method type parameters where necessary: collect(Collections.emptyLis|) where collect expects List<String>
  • Suggests to cast to expected type after opening parenthesis: String s = (|
  • New! When calling a method or constructor with matching signature (e.g. a super method), fills all the parameters immediately.
  • Suggests live templates with statically-determineable type and 'Smart completion' checkbox on.
  • Searches expected class's static members for matching values: Singleton s = | will result in Singleton s = Singleton.getInstance();
  • Searches method containing class for primitive constant fields which may suit.
  • New! Analyzes dataflow in search for typecasts and *instanceof*s and suggests to cast expressions to expected type where possible.
  • Keywords: classthis (possibly qualified), truefalsenull
  • Second:
    • Iterates over the visible methods/fields to check if their return value contains members of expected type, resulting in chained calls like getModule().getProject(). Prefix matching is done on both the first and the second member in chain (so you may get this result from both getMo| and getPro|).
    • Converts between arrays and lists when you have one in context and need another.
    • Adds array member access when you have an array of expected type: int a = | will result in int a = intArray[|].

Both Basic & Smart

  • New! When completing a qualified expression analyzes dataflow and checks if there are any typecasts or *instanceof*s concerning the qualifier. If yes, suggests the variants based on the casted type and inserts the cast automatically.
  • New! In debugger's Evaluate Expression dialog does similar casting to runtime type. When expression is simple variable/field access, it's done immediately, when it involves method calls, on second completion.
  • If all variants are method overloads with the same name, lookup isn't shown, method name is inserted with caret placed inside parentheses.
  • When completing a method with boolean return type, you may finish completion with '!' and the call result will be negated.
  • You may finish completion with Complete Current Statement action (Ctrl+Shift+Enter), which will attempt to syntactically correct your code, e.g. wrap the following expression into parentheses if you've chosen a method call.

Class Name

  • After new also inserts parentheses for constructor invocation.

Groovy

Basic

  • Context-specific reference and keyword completion, inserts parentheses, semicolons etc. where necessary.
  • Runtime members:
    • DefaultGroovyMethods
    • SwingBuilder
    • New! Grails domain class & controller dynamic properties and methods
    • Gant script dynamic methods (e.g. depends, target) and properties (e.g. includeTargets, message)

Smart

  • New! After new in variable initializer with known type suggests possible inheritors: CharSequence c = new |

Labels

 
(None)


忆风 2009-10-28 09:19 发表评论
]]>
IntelliJ IDEA走向开?/title><link>http://m.tkk7.com/yifeng/archive/2009/10/18/298778.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sun, 18 Oct 2009 13:36:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2009/10/18/298778.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/298778.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2009/10/18/298778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/298778.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/298778.html</trackback:ping><description><![CDATA[<span style="border-collapse: collapse; color: #3f3f3f; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 16px; "><span style="font-size: 14pt; "><span style="font-size: 12pt; "><span style="font-size: 14pt; ">Y件开发商提供增效型智能工L创徏?JetBrains(R) 宣布了其获奖?Java IDE -- IntelliJ(R) IDEA 免费C֌?(Community Edition) 的首个公开预览?br />     从即推出的9.0版开始,IntelliJ IDEA 以两个版本提供Q社区版Q免费且开源;l极?(Ultimate Edition)Q今天之前,l极版一直只是指 IntelliJ IDEA?br />     最好的消息便是Q社区版的推出消除了 IntelliJ IDEA 更广泛用于纯 Java 开发的唯一障碍 -- h问题。该版本不仅是免费的Q而且 -- 也是特别重要?-- 它还是完全开源的?br />     JetBrains 首席执行?Sergey Dmitriev 表示Q?我们一直通过我们的公?Early Access ProgramQ简U?EAP'Q、发行追t者、论坛等面向C֌开放。这使得我们与用户之间Ş成了紧密而又直接的反馈环Q甚臛_业界q没q泛认可q一实践时。自那以后,我们通过免费的品授权ؓ数百个开源计划提供了支持Qؓ Groovy ?Scala {各U开源计划A献了代码Qƈ为我们自己开发了C开?IntelliJ IDEA 插g。因此,您可以明白通过开源授权免Ҏ?IntelliJ IDEA 体验是如何与我们致力于社区的重心相结合的。开源已l成ZLQ我们l将其作Z个激动h心的挑战。简单说来,我们q没有改变方?-- 我们正在向前发展?<br />     该全新的C֌版徏Z IntelliJ q_Q包括其源代码。JetBrains 通过大众化 Apache 2.0 授权应用于社区版?IntelliJ q_Q得它们源代码的获得和使用变得可能简单?br />     说实在的QIntelliJ q_可以看作?JetBrains 构徏 IDE 的专门知识。它不仅?IntelliJ IDEA 本n的基Q而且q是其它众多创新?JetBrains 工具Q旨在用于以特定语言?或域q行的开发)的基。这些著名的新工具包?RubyMine、网l开?IDEQ已l在公开预览中)MPS 以及其它目前正在开发的工具?br />     Ҏ非常合理且显而易见的实用原则QIntelliJ IDEA 被分Z个版本:<br />     -- C֌?-- 依靠U?Java/Groovy 应用工作或进?Swing 开发的Z的完之选。它拥有 IntelliJ IDEA 的所有优势,包括各种代码重构和代码检查、编码辅助、调试、TestNG ?JUnit 试QCVS、Subversion ?Git 支持以及 Ant ?Maven 构徏整合?br />     垂询详情Q或下蝲C֌版公开预览Q请讉K <a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/nextversion/free_java_ide.html</u></a> ?br />     -- l极?-- 一个功能齐全的商业?IntelliJ IDEAQ拥有完整的|络和企业开发工L合,一贯ؓ最重要的现代技术和框架提供最高质量的支持?版本的新功能包括Q?br />     -- Java EE 6Q拥?JSF 2.0、JPA 2.0、Servlets 3.0、Bean 验证{?br />     -- Android、Google App Engine、GWT<br />     -- Adobe AIR、FlexUnit<br />     -- JavaScript 重构和调?br />     -- Tapestry、OSGi<br />     -- PHPQ等?br />     ?IntelliJ IDEA l极版区分开的主要功能包括:紧密?Perforce、Rational ClearCase 和微?(Microsoft) Team Foundation Server 整合、依存结构矩c带有结构搜d替换的先q代码管理。这些以及其它诸多性能使得它成为面?Java q_上广泛的专业开发的独特工具?br />     Ʋ查?IntelliJ IDEA Ultimate 9 的更多新功能的列表,或下载预览构建,误?nbsp;<a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/nextversion/index.html</u></a> ?br />     阅读C֌版和l极版的差异Q请讉K <a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/nextversion/editions_comparison_matrix.html</u></a> ?br />     垂询 IntelliJ IDEA C֌版开源计划详情,或下载其源码Q请讉K <a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.org</u></a> ?br />     JetBrains ?br />     JetBrains 是一家技术领先的软g开发公司,专门从事增效型智能Y件的开发。该公司因其获奖的创新型 Java(TM) 集成开发环?IntelliJ(TM) IDEAQ详情请?a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/</u></a> Q、面?.NET 开发h员的 ReSharper ?dotTrace ProfilerQ请?nbsp;<a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/resharper/index.html</u></a> ?a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/profiler/index.html</u></a> Q、持l集成和构徏理环境 TeamCity ( <a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/teamcity/index.html</u></a> ) 以及 Ruby ?Rails 集成开发环?RubyMine ( <a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/ruby</u></a> ) 而n誉各地。JetBrains 总部位于捷克布拉|在俄|斯圣彼得堡和马萨诸塞州波士设有研发实验室。垂询详情,误?a target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/index.html</u></a> ?/span></span></span></span> <img src ="http://m.tkk7.com/yifeng/aggbug/298778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2009-10-18 21:36 <a href="http://m.tkk7.com/yifeng/archive/2009/10/18/298778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用IntelliJ IDEA自动在线升服务http://m.tkk7.com/yifeng/archive/2009/02/05/253428.html忆风忆风Thu, 05 Feb 2009 10:03:00 GMThttp://m.tkk7.com/yifeng/archive/2009/02/05/253428.htmlhttp://m.tkk7.com/yifeng/comments/253428.htmlhttp://m.tkk7.com/yifeng/archive/2009/02/05/253428.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/253428.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/253428.html      1. 选择UpdatesQ打开IDEA的控刉板,选择“Updates”Q然后点?#8220;Check Now”按钮Q?br /> 选择update
      2. 下蝲PatchQ在“Update Info”对话框中会出现升U信息:如果JetBrains站点提供目前使用版本到最新版本的升补丁Q就会提CZ下蝲补丁q行升Q否则你pM载完整IDEA安装包啦?br /> 下蝲patch
     3. 安装PatchQ点?#8221;Download Patch and Shutdown“后,IDEA׃下蝲升补丁Q同旉新启动IDEAQ在重启动IDEA的过E中Q会提示你是否安装升U补丁,你只需点击”Install Patch“可以啦Q最后IDEA会提CZ手动重新启动IDEA?br /> 安装patch
     整个升q程Q?步)q是比较畅的,q样升IDEA方便很多啦。IDEA的安装包也越来越大(目前?28MQ,通过q种方式升IDEA不需要再下蝲安装包,安装也便P且IDEA的相关配|也不会更改?strong>注意Q?/strong>如果你通过代理服务器进行升U,可能代理服务器保留缓存,D你看不到最新的更新信息Q要注意一下?

忆风 2009-02-05 18:03 发表评论
]]>
IntelliJ 8.1 build 9618发布http://m.tkk7.com/yifeng/archive/2008/12/31/249271.html忆风忆风Tue, 30 Dec 2008 17:47:00 GMThttp://m.tkk7.com/yifeng/archive/2008/12/31/249271.htmlhttp://m.tkk7.com/yifeng/comments/249271.htmlhttp://m.tkk7.com/yifeng/archive/2008/12/31/249271.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/249271.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/249271.html
http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP


Release Notes

IntelliJ IDEA 8.1 EAP includes the following new features:

  • Major performance improvements for index updates and compiler caches
  • Sharing settings between multiple installations of IntelliJ IDEA on different computers (work in progress)
  • Team Foundation Server integration
  • git integration
  • Resin integration
  • Oracle SQL dialect support (work in progress)
  • Copyright plugin is now bundled



忆风 2008-12-31 01:47 发表评论
]]>
Running Maven Built Web Applications Directly From Intellij IDEAhttp://m.tkk7.com/yifeng/archive/2008/12/10/245524.html忆风忆风Wed, 10 Dec 2008 08:38:00 GMThttp://m.tkk7.com/yifeng/archive/2008/12/10/245524.htmlhttp://m.tkk7.com/yifeng/comments/245524.htmlhttp://m.tkk7.com/yifeng/archive/2008/12/10/245524.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/245524.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/245524.html

Intellij IconHere's how you can run maven built web applications directly from within Intellij IDEA 8. Once you run this way, you completely eliminate the code, build, deploy, restart cycle just when you want to make a change... you can even change classes on the fly (hot swapping).

I pretty much only run in debug mode now. Debugging is really nice because the dependent source files are linked up and downloaded automagically by maven on the fly and class changes via hot swapping really makes you productive. The archetype selection in the project creation wizard came with version 8 but the rest of the guide will work with versions 6 and 7 as well. I used the appfuse-basic-spring archetype as the web application but any web app built with maven should work in a pretty similar way.

Create Maven Module

First, we need a project. There's nothing special to note here with the exception of the name field. The name field cannot contain a space. If it does, Intellij doesn't start up tomcat properly and you get this ClassNotFoundException on logging/properties.

Create new project

Choose Maven Archetype

You can type in what you want to for your particular project here. Then click Finish.

Choose Archetype

Build Project with Maven

Next you need to build the project to make the output directories.

Run Maven Package

Click Edit Configurations

There's a button on the toolbar or you can find it by going to Run --> Edit Configurations. After you click the plus sign and pick local tomcat server you'll see this

Run/Debug Configurations

Pick Application Server

If you've already configured an application server for Intellij, you can just choose it in the dropdown menu. Otherwise you'll need to configure one. After you click Configure... you'll see this screen:

Create Local Tomcat Server

If you haven't installed Tomcat locally you'll of course need to do that. Then click the plus sign and pick the tomcat home and Intellij will figure out the rest.

After you hit ok, you'll be back to the Run/Debug Configurations menu. Now you can choose the server from the dropdown and the Startup page: should be filled in with whatever port your Tomcat server has been configured to use.

After Tomcat Server Config

Click on Deployment Tab

This is where you choose the deployment source and application context for the web facet within the application. First click on the Web Facet: Web module in the middle pane and check the Deploy Web Facet 'Web' checkbox.

Click Deployment Tab

Click the Configure... button.

Configure the Deployment Source

Uncheck the Create web facet war file and choose Create web facet exploded directory instead.

Java EE Build Settings Default

Click the ellipses (...) button to choose the exploded directory:

Select Web Facet Exploded Directory

Choose the location under the target folder where maven built the war. It is going to be named using artifactId-version that you chose when you created the project in the first place. This information is stored in the pom.xml file so you can change it whenever you want. If you do change it go back to the Build Project with Maven step after you have done so.

Click Ok. Then Click Ok to close the Deployment Source window.

Finish Deployment Tab

Now you can select the Deployment Source and set your application context.

Finish Web Facet Deployment

Click Ok.

Run/Debug the Application

You should see the server startup successfully

Click the Run Button

Login to the Application

See Login Page

Login to the application

Hot Swapping

If you've started up in debug mode (highly recommended), change a class in the class path and make the project (Apple+F9) or compile the specific class you've changed (Apple+Shift+F9). You should be presented with this popup:

Redeploy Application Popup

Make sure you click No on this dialog box. If you click yes, hot swapping won't work. I usually check Do not show this dialog in the future as well.

That's it! Now when you change classes and JSPs you can just compile and they will be hot swapped with resources on the running server. 



忆风 2008-12-10 16:38 发表评论
]]>
CodeExplorer 1.0 for IntelliJ Ideahttp://m.tkk7.com/yifeng/archive/2008/12/09/245207.html忆风忆风Tue, 09 Dec 2008 04:45:00 GMThttp://m.tkk7.com/yifeng/archive/2008/12/09/245207.htmlhttp://m.tkk7.com/yifeng/comments/245207.htmlhttp://m.tkk7.com/yifeng/archive/2008/12/09/245207.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/245207.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/245207.htmlCodeExplorer is IntelliJ Idea plugin that helps to explore method call chains.
Its tool window shows methods and calls between them on a handy diagram.
Now you can see usages and structure of several methods on a single diagram!

Start from Analyze menu to display method calls from one method (method structure) or between methods in class.
Click on method nodes to display what methods they call or its usages!

You can choose on graph toolbar what to show on method node click: usages or called methods:

 

Download it here.



忆风 2008-12-09 12:45 发表评论
]]>
Handy SQL with IntelliJ IDEAhttp://m.tkk7.com/yifeng/archive/2008/11/13/240193.html忆风忆风Wed, 12 Nov 2008 16:14:00 GMThttp://m.tkk7.com/yifeng/archive/2008/11/13/240193.htmlhttp://m.tkk7.com/yifeng/comments/240193.htmlhttp://m.tkk7.com/yifeng/archive/2008/11/13/240193.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/240193.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/240193.htmlIf a project you are working on requires referring to an SQL database, you can, actually, use one of the numerous SQL clients, or type commands in the command line - and regularly switch between frames. Now IntelliJ IDEA suggests a better choice. Since version 8.0, you have a dedicated Database tool window at your disposal, which allows you to work with the data sources without leaving IntelliJ IDEA.

Let’s have a 10,000-feet look at IntelliJ IDEA’s database support in action.

First, configuring a data source is now just a snap – press Insert, specify your data source parameters and make sure you are connected. By the way, you can use the old good External Tools dialog to create start and stop scripts for a database server, if needed.

 

 

 

 

 

 

 

You can now create SQL scripts, enjoying the famous IntelliJ IDEA’s coding assistance, which includes syntax and error highlighting, code completion for keywords, table and column names, and more.

 

 

 

 

 

 

 

 

From the Database tool window you can launch JDBC console for a data source of your choice. It is very easy – just select the desired data source, and click the run button on the toolbar. Console adds a tab to the Run tool window. Here you are: the upper panes are intended for SQL commands, the lower pane displays messages.

Let’s start typing SQL commands. As you see, syntax highlighting and code completion are also available here:

 

 

 

 

 

Should I also mention that you can find here the handy editor shortcuts that have already become a habit for the IntelliJ IDEA users? Among them, pay attention to “Go to Declaration”. If you place the cursor at the table name, and click Ctrl+B, the corresponding table will be highlighted in the data source.

The console can contain as many commands as required. You can run them all at once (Ctrl+Enter), or execute one by one, in the order you consider appropriate (Ctrl+Shift+Enter), and see results in the lower pane:

 

 

 

 

 

 

 

Suppose you want to retrieve data from the various tables. Instead of repeatedly entering the same command with the changing parameters, use variables, which are just strings enclosed in $, #, or ?{}. When such a string is encountered in a command you type in the left pane, it is added to the list of parameters in the right pane, where you can enter the desired values:

 

 

 

 

 

 

 

 

What happens if you use wrong syntax? An error is marked same way as in the editor, with the red underline, and diagnostics at the tooltip. If you want to change SQL dialect, just click the properties button in the console toolbar, and select one of the supported dialects.



忆风 2008-11-13 00:14 发表评论
]]>
Class Diagram in IntelliJ IDEA 8http://m.tkk7.com/yifeng/archive/2008/11/12/239994.html忆风忆风Wed, 12 Nov 2008 01:45:00 GMThttp://m.tkk7.com/yifeng/archive/2008/11/12/239994.htmlhttp://m.tkk7.com/yifeng/comments/239994.htmlhttp://m.tkk7.com/yifeng/archive/2008/11/12/239994.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/239994.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/239994.htmlClass Diagram in IntelliJ IDEA 8 IntelliJ IDEA 8 is already here. It is so feature-rich that it’s rather hard to tell what is most important – improved testing support, or new refactorings, injected languages, or handy interaction with data sources. In due time, we’ll dig deeper into all the new features.

Let’s begin with something brand-new for IntelliJ IDEA, namely UML Class diagram support. This feature is actually the first attempt to approach UML modeling, and thus requires further finishing and fine-tuning. Try Class diagram with IDEA hands-on – your feedback will be appreciated and considered in further revisions.

You can use UML Class diagram for two purposes:

  • To create a visual model, populate it with node elements and members, and have the underlying code generated automatically (forward engineering).
  • To explore existing source code, understand its hierarchy and dependencies (reverse engineering).

Creating visual model

To demonstrate visual modeling with IntelliJ IDEA UML Class diagram in action, we’ll create a new Java project, add a package (for example, animals), and press (take care of your fingers) Ctrl+Alt+Shift+U. Context menu of the diagram helps create all the required elements, but, since IntelliJ IDEA is strongly keyboard-centric, we’ll use keyboard shortcuts.

 

 

 

 

 

Press Shift+C to create new classes, for example, Animals, and Carnivore. Now press Shift+I to create an interface, say, Huntable. Note a very handy way to add node elements to a diagram: select a class in the Project view and just drag it to the diagram background:

 

 

 

 

 

 

 

Next step is to add fields and methods to node elements. Here, again, you can use context menu commands, or keyboard shortcuts. For example, having selected a node element, press Shift+M, and define method name, type and parameters, if any:

 

 

 

 

 

 

Now, let’s create relationship links between node elements. For this purpose, you have to enable the special edge drawing mode by clicking edge drawing mode button on the diagram toolbar. IntelliJ IDEA can smartly tell the type of relationship link, depending on the source and target nodes.

Suppose you draw a link from a class to an interface:

 

 

 

 

 

 

 

Click the Generate methods button, and select the methods you want to be implemented.

Look into the source code of the Carnivore class, and see that implements clause has been generated, together with the selected methods’ stubs. Drawing a link between two classes, results in generating extends clause:

 

 

 

 

 

 

 

 

 

Exploring code base with UML Class diagram

Let’s see how you can use Class diagram in IntelliJ IDEA to reverse engineer source code, and view its structure, hierarchies and dependencies. Select a library package, for example, java.beans, and open its Class diagram:

 

 

 

 

 

 

What does IntelliJ IDEA suggest to get as much information as possible? Actually, all facilities are on the diagram toolbar and context menu… however, as it is custom for IntelliJ IDEA, you can do everything using both the keyboard, and pointing device.

If a diagram is too large, get a “10,000-feet view” of it in the Structure tool window. To do that, just press Alt+7:

 

 

 

 

 

The gray rectangle represents the currently visible area of the diagram. Dragging this rectangle reveals the corresponding portion of diagram. You can zoom in and out using the NumPad plus and minus keys, or rotate your mouse wheel.

If the names of the node elements are long, you can reduce them to the capital letters only by pressing Alt+N. Pointing to a node shows its fully qualified name at the tooltip:

 

 

 

 

 

 

 

 

If we want to see the node elements with their members, rather than just class names in the title bars, press the toolbar buttons

, or use keyboard shortcuts to show fields (Alt+F), constructors (Alt+C), methods (Alt+M) and inner classes (Alt+I) respectively:

 

 

 

 

 

 

 

 

 

 

 

To show the package the selected node belongs to, just press C, and the diagram will collapse to the container package:

 

 

 

 

 

The opposite action (E) expands selected package and shows its Class diagram. You can also easily visualize the nodes that reside in the same package, or in subpackages. To do that, select a node element in diagram, and press Space bar. The sibling nodes are highlighted yellow, and the nodes that belong to subpackages of the current package are green. The nodes that reside outside of the current package are not highlighted:

 

 

 

 

 

 

 

 

If you point to a package, a tooltip appears with the complete information about the package - its name, number of contained classes and subpackages.

Suppose that you want to explore only a portion of diagram, and remove from view those elements that are of no interest for you. In this case, use the Delete key. The node elements are deleted from diagram, but the corresponding files are left intact. (If you want to physically delete an element, use Safe Delete refactoring).

For exploring dependencies, click the show dependencies button on the diagram toolbar

. As you select a node element, its dependency links appear in diagram:

 

 

 

 

 

 

 

Needless to say that handy navigation shortcuts, search for usages, analysis of dependencies and refactorings you are used to in IntelliJ IDEA, are available in Class diagram too.

Try the live demo at http://www.jetbrains.com/idea/training/demos/uml-class-diagrams.html



忆风 2008-11-12 09:45 发表评论
]]>
一关于JSR 305的介l文?/title><link>http://m.tkk7.com/yifeng/archive/2008/09/14/228824.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sat, 13 Sep 2008 16:52:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/09/14/228824.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/228824.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/09/14/228824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/228824.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/228824.html</trackback:ping><description><![CDATA[IDEA已经实现了部分代码检查,q个应该是IDEA后箋支持的, <a class="postlink" >http://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html</a> <img src ="http://m.tkk7.com/yifeng/aggbug/228824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-09-14 00:52 <a href="http://m.tkk7.com/yifeng/archive/2008/09/14/228824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vibrant Ink Theme for IntelliJ IDEAhttp://m.tkk7.com/yifeng/archive/2008/08/27/225110.html忆风忆风Wed, 27 Aug 2008 10:15:00 GMThttp://m.tkk7.com/yifeng/archive/2008/08/27/225110.htmlhttp://m.tkk7.com/yifeng/comments/225110.htmlhttp://m.tkk7.com/yifeng/archive/2008/08/27/225110.html#Feedback0http://m.tkk7.com/yifeng/comments/commentRss/225110.htmlhttp://m.tkk7.com/yifeng/services/trackbacks/225110.html






下蝲地址Q?nbsp;VibrantInk.rar



忆风 2008-08-27 18:15 发表评论
]]>
IntelliJ IDEA 目录技?/title><link>http://m.tkk7.com/yifeng/archive/2008/08/27/224903.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Tue, 26 Aug 2008 21:21:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/08/27/224903.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/224903.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/08/27/224903.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/224903.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/224903.html</trackback:ping><description><![CDATA[  <p style="text-align: center" align="center"><span style="font-size: 22pt">IntelliJ IDEA </span><span style="font-size: 22pt; font-family: 宋体">目录技?/span></p> <div style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 4pt; margin-left: 46.8pt; border-left: medium none; margin-right: 46.8pt; padding-top: 0cm; border-bottom: #4f81bd 1pt solid"> <p style="margin: 10pt 0cm 14pt">IntelliJ IDEA<span style="font-family: 宋体">?/span>Web<span style="font-family: 宋体">应用的目录结?/span></p> </div> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">目录图:<br /> <img height="286" alt="" src="http://m.tkk7.com/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA01.JPG" width="334" border="0" /></span></p> <table style="border-right: medium none; border-top: medium none; margin-left: 21pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> </tbody> </table> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">目录解释Q?/span></p> <table style="border-right: medium none; border-top: medium none; margin-left: 21pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: #4f81bd 1pt dashed; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 405.1pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="540" colspan="2"> <p><strong><span style="font-family: 宋体">开发目?/span></strong></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p><strong><span style="font-family: 宋体">目录名称</span></strong></p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><strong><span style="font-family: 宋体">描述</span></strong></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>Test</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">工程名称</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    lib</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p>Jar<span style="font-family: 宋体">包的存放目录</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    src</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">源文件也是文g</span>(<span style="font-family: 宋体">c,资源文g</span>)<span style="font-family: 宋体">存放的目?/span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    test</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">试用例文g</span>(<span style="font-family: 宋体">cR资源文?/span>)<span style="font-family: 宋体">存攄目录</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    web</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p>WEB<span style="font-family: 宋体">根目录,存放</span>WEB<span style="font-family: 宋体">资源</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>        WEB-INF</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">配置文g存放目录</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"></td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"></td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 405.1pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="540" colspan="2"> <p><strong>Module</strong><strong><span style="font-family: 宋体">的输出目?/span></strong></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p><strong><span style="font-family: 宋体">目录名称</span></strong></p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><strong><span style="font-family: 宋体">描述</span></strong></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>out</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">当前工程的输出,包括所有的资源和类文g</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    Exploded</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">工程的输出目?/span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>        TestWeb</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">工程在容器中q行的别?/span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    production</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">cL件的输出目录</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>        Test</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">工程名称Q准的说应该是模块的名Uͼ存放</span>src<span style="font-family: 宋体">~译后文Ӟ都输出到q里?/span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>    test</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">试的类文g目录</span></p> </td> </tr> <tr> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"> <p>        Test</p> </td> <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"> <p><span style="font-family: 宋体">工程名称Q准的说应该是模块的名Uͼ存放</span>test<span style="font-family: 宋体">~译后的cd资源文gQ都输出到这里了</span></p> </td> </tr> </tbody> </table> <p style="margin-left: 21pt; text-indent: -21pt; text-align: center" align="center"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">首先我要说一点,?/span>IntelliJ IDEA<span style="font-family: 宋体">里面“</span>new Project<span style="font-family: 宋体">”q当于我们</span>eclipse<span style="font-family: 宋体">?#8220;</span>workspace<span style="font-family: 宋体">”Q?#8220;</span>new Module<span style="font-family: 宋体">”才是创徏一个工E,q是要注意的一炏V?/span></p> <p style="margin-left: 21pt; text-indent: -21pt; text-align: center" align="center"><span style="font-family: Wingdings">Ø </span> <span style="font-family: 宋体">我们会发玎ͼ在用</span>IntelliJ IDEA <span style="font-family: 宋体">q行开发的时候,会有</span>2<span style="font-family: 宋体">个目录,一个是“开发目?#8221;Q用来经常进行我们的开发操作,是可见的Q另一个就?#8220;输出目录”Q这个环境目录,我们是看不见的,也就是在</span>IDEA<span style="font-family: 宋体">里面看不见,我们在实际的路径中能看到Q其实这个环境目录就相当于我们的容器的当前环境,我们通常的做法是把容器的虚拟目录指定C个目录,q里</span>IntelliJ IDEA<span style="font-family: 宋体">会默认把当前环境指定?/span>out<span style="font-family: 宋体">里面Q这样一来不用再往容器里面发布了,节省了开发时间?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">我们会发玎ͼ</span>lib<span style="font-family: 宋体">竟然?/span>src<span style="font-family: 宋体">成了同目录了,常理应该攑֜</span>WEB-INF<span style="font-family: 宋体">下面的,q是</span>IntelliJ IDEA<span style="font-family: 宋体">默认的,当然Q这个目录我们也可以改回“</span>WEB-INF<span style="font-family: 宋体">”下面Q这是一炏V?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">接着我们会发玎ͼ没有</span>classes<span style="font-family: 宋体">目录Q常理,它也应该?#8220;</span>WEB-INF<span style="font-family: 宋体">”下面呀Q是在,一会儿我在告诉你,他藏到哪里去了,呵呵?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">然后是输出目录了,我来l大安步解释Q我们可以打开实际的目录结构来查看Q?#8220;</span>production<span style="font-family: 宋体">”q个目录攄是所有工E文?/span>(<span style="font-family: 宋体">c,和资?/span>)<span style="font-family: 宋体">文gQ也是所有放?/span>src<span style="font-family: 宋体">下面的所有文件。下面的“</span>Test<span style="font-family: 宋体">”是工程的名Uͼ?/span>IntelliJ IDEA<span style="font-family: 宋体">是</span>Module<span style="font-family: 宋体">的名Uͼ因ؓ可以有多?/span>Module<span style="font-family: 宋体">。我们只?#8220;</span>Make Module<span style="font-family: 宋体">”的时候,~译后的文gQ都会自动发布过来。这里我只有一?/span>Module<span style="font-family: 宋体">Q就?#8220;</span>Test<span style="font-family: 宋体">”Q所以下面就一?#8220;</span>Test<span style="font-family: 宋体">”目录?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">现在是“</span>test<span style="font-family: 宋体">”Q这个目录就是我们测试用例,我们所有的试cd资源文gQ都会编译到q里了,下面是我们的工程名,CQ在</span>IntelliJ IDEA<span style="font-family: 宋体">里面?/span>Module<span style="font-family: 宋体">Q呵?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">“</span>Exploded<span style="font-family: 宋体">”是真正q行的目录,因ؓ我们可以有多?#8220;</span>Module<span style="font-family: 宋体">”Q当?/span>ide<span style="font-family: 宋体">里面选择q行哪个“</span>Module<span style="font-family: 宋体">”的时候,环境指定到哪里目录Q然后就?#8220;</span>TestWeb<span style="font-family: 宋体">”Q这个就是我们运行的</span>Web<span style="font-family: 宋体">E序的别名,它会自动l你加上“</span>web<span style="font-family: 宋体">”用于区分吧。然后这?#8220;</span>TestWeb<span style="font-family: 宋体">”是我们当前环境的目录了Q如果你仔细看,你会发现Q这个目录符合我们发布到容器里面的目录,我的意思是_?#8220;</span>WEB-INF<span style="font-family: 宋体">”下面竟然会有“</span>classes<span style="font-family: 宋体">”?#8220;</span>lib<span style="font-family: 宋体">”目录Q原来才知道q都是由容器自动完成Q只是开发目录和q_的目录有变化Q但是运行目录没有区别?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span>IntelliJ IDEA<span style="font-family: 宋体">不支持自动编译,也就是说不能?/span>Eclipse<span style="font-family: 宋体">那样Q自动编?/span>class<span style="font-family: 宋体">Q?/span>IntelliJ IDEA<span style="font-family: 宋体">必须由我?/span>Make<span style="font-family: 宋体">q行?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span>IntelliJ IDEA<span style="font-family: 宋体">不支持热发布Q我们^常在</span>Eclipse<span style="font-family: 宋体">里面攚w面的时候不需要启动容器,直接phq来了,但是</span>IntelliJ IDEA<span style="font-family: 宋体">不行Q因为需?/span>Make<span style="font-family: 宋体">Q和输出</span>(out)<span style="font-family: 宋体">Q这里需要一些技巧,马上p到?/span></p> <div style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 4pt; margin-left: 46.8pt; border-left: medium none; margin-right: 46.8pt; padding-top: 0cm; border-bottom: #4f81bd 1pt solid"> <p style="margin: 10pt 0cm 14pt">IntelliJ IDEA<span style="font-family: 宋体">部v技?/span></p> </div> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">上面的目录结构,都是工具默认的,q里我们改变它的目录l构Q来提高开发效率?/span></p> <p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">Ø </span><span style="font-family: 宋体">刚才说到Q?/span>IntelliJ IDEA<span style="font-family: 宋体">不支持热发布Q就因ؓ改个面我们去重启容器,是很费旉的,也很ȝ。我们通过改变目录来解册个问题?/span></p> <p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span><span style="font-family: 宋体">?#8220;</span>Project Settings<span style="font-family: 宋体">”里面“</span>Modules<span style="font-family: 宋体">”也就是我们工E的名字Q然?#8220;</span>Paths<span style="font-family: 宋体">”Q这是没Ҏ前的图:<br /> <img height="542" alt="" src="http://m.tkk7.com/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA02.JPG" width="568" border="0" /></span></p> <table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1"> <tbody> </tbody> </table> <p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span><span style="font-family: 宋体">我们把目录改变后的如下:<br /> <img height="620" alt="" src="http://m.tkk7.com/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA03.JPG" width="557" border="0" /></span></p> <table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1"> <tbody> </tbody> </table> <p style="margin-left: 42pt; text-indent: 0cm"><span style="font-family: 宋体">然后我们“</span>Make Module<span style="font-family: 宋体">“Q发现文仉~译?/span>classes<span style="font-family: 宋体">下了。和我们以前的一样了吧。哈</span></p> <p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span><span style="font-family: 宋体">然后q是?#8220;</span>Project Settings<span style="font-family: 宋体">”里面Q?#8220;</span>Modules<span style="font-family: 宋体">”然后Ҏ你右边的</span>Modules<span style="font-family: 宋体">名字Q你会发现有?/span>Web<span style="font-family: 宋体">的子节点Q这里记得光标要攑֜“</span>Web<span style="font-family: 宋体">”节点上,然后看右Ҏ个配|页面,未改变前如图Q?br /> <img height="395" alt="" src="http://m.tkk7.com/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA04.JPG" width="557" border="0" /></span></p> <table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1"> <tbody> </tbody> </table> <p style="margin-left: 42pt; text-indent: 0cm"><span style="font-family: 宋体">到这里,你会发现有个</span>Web Facet Exploede Directory<span style="font-family: 宋体">Q然后我们改变这个目录,指向当前工程?/span>Web<span style="font-family: 宋体">跟节点即可?/span></p> <p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span><span style="font-family: 宋体">如下图:<br /> <img height="389" alt="" src="http://m.tkk7.com/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA05.JPG" width="557" border="0" /><br /> <br /> <br /> <span style="color: #ff0000">*:注意 Exclude from module content勑֎掉,不然会有webroot不见了的现象</span></span></p> <table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1"> <tbody> </tbody> </table> <p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n </span><span style="font-family: 宋体">然后我们启动容器Q随便的~辑面Q然后点d斎ͼ发现面立即能显C出来了Q哈Q这样开发是不是省去很多重启容器的时_呵呵?/span></p> <br /> <br /> <br /> <hr />  <br /> <span style="color: red">作者:周大庆(zhoudaqingQ?<br /> </span><span style="color: red">|址Q?strong><font color="#ff0000">http://m.tkk7.com/yifeng</font></strong></span><br /> <span style="color: red">>>><strong>转蝲h明出处!</strong><<< </span> <img src ="http://m.tkk7.com/yifeng/aggbug/224903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-08-27 05:21 <a href="http://m.tkk7.com/yifeng/archive/2008/08/27/224903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ IDEA常用技?/title><link>http://m.tkk7.com/yifeng/archive/2008/08/24/223941.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sat, 23 Aug 2008 22:06:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/08/24/223941.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/223941.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/08/24/223941.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/223941.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/223941.html</trackback:ping><description><![CDATA[<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">不知不觉Q用InelliJ IDEA也有近1q的旉了,自从使用了它Q感觉大大提高自q开发效率,以及非常的提C,像官方所?#8220;The Most Intelligent Java IDE”Q用用就知道它的强大之处Q下面是它的快捷键ȝQ?br /> <br /> <br /> <br /> </span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">1<span style="font-family: 宋体">、写代码时用</span><strong><span style="color: #008080">Alt-Insert</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Code|Generate…</span></strong><span style="font-family: 宋体">Q可以创建类里面M字段?/span>getter<span style="font-family: 宋体">?/span>setter<span style="font-family: 宋体">Ҏ?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img height="128" alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821917.gif" width="130" _counted="undefined" /></span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'"><?xml:namespace prefix = v ns = "urn:schemas-<a target="_blank">microsoft</a>-com:vml" />microsoft-com:vml" />aspectratio="t" v:ext="edit"></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">2<span style="font-family: 宋体">、右键点LҎ讎ͼ在文本的左边栏里Q激z速查菜单Q你可以快速设|?/span><strong><span style="color: #008080">enable/disable</span></strong><span style="font-family: 宋体">断点或者条件它的属性?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821910.gif" _counted="undefined" /> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">3<span style="font-family: 宋体">?/span>CodeCompletion<span style="font-family: 宋体">Q代码完成)属性里的一个特D的变量是,Ȁz?/span><strong><span style="color: #008080">Ctrl-Alt-Space</span></strong><span style="font-family: 宋体">可以完成在或不在当前<a target="_blank">文g</a>里的cd。如果类没有引入?/span>import<span style="font-family: 宋体">标志会自动创建?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821413.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">4<span style="font-family: 宋体">、?/span><strong><span style="color: #008080">Ctrl-Shift-V</span></strong><span style="font-family: 宋体">快捷键可以将最q用的剪脓板内定w择插入到文本。用时<a target="_blank">pȝ</a>会弹Z个含有剪贴内容的对话框,从中你可以选择你要_脓的部分?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">5<span style="font-family: 宋体">、利?/span>CodeCompletion<span style="font-family: 宋体">Q代码完成)属性可以快速地在代码中完成各种不同地语句,Ҏ是先键入一个类名地前几个字母然后再?/span><strong><span style="color: #008080">Ctrl-Space</span></strong><span style="font-family: 宋体">完成全称。如果有多个选项Q它们会列在速查列表里?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821119.gif" _counted="undefined" /><br />       6<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Ctrl-/</span></strong><span style="font-family: 宋体">?/span><strong><span style="color: #008080">Ctrl-Shift-/</span></strong><span style="font-family: 宋体">来注?/span>/<span style="font-family: 宋体">反注释代码行与代码块?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">-/<span style="font-family: 宋体">用单行注释标讎ͼ“</span><strong><span style="color: #008080">//…</span></strong><span style="font-family: 宋体">”Q来注释</span>/<span style="font-family: 宋体">反注释当前行或者选择C码块。?/span>Ctrl-Shift-/<span style="font-family: 宋体">则可以用块注释标讎ͼ“</span><strong><span style="color: #008080">/*…*/</span></strong><span style="font-family: 宋体">”Q把所选块包围h。要反注释一个代码块在块中M一个地Ҏ</span>Ctrl-Shift-/<span style="font-family: 宋体">卛_?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">7<span style="font-family: 宋体">、按</span><strong><span style="color: #008080">Alt-Q</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">View|Context Info</span></strong><span style="font-family: 宋体">Q可以不需要移动代码就能查看当前方法地声明。连l按两次会显C当前所~辑的类名?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">8<span style="font-family: 宋体">、?/span><strong><span style="color: #008080">Refactor|Copy Class…</span></strong><span style="font-family: 宋体">可以创徏一个所选择的类?#8220;副本”。这一点很有用Q比如,在你惌创徏一个大部分内容都和已存在类相同的类时?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">9<span style="font-family: 宋体">、在~辑器里</span><strong><span style="color: #008080">Ctrl-D</span></strong><span style="font-family: 宋体">可以复制选择的块或者没有所选块是的当前行?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">10<span style="font-family: 宋体">?/span><strong><span style="color: #008080">Ctrl-W</span></strong><span style="font-family: 宋体">Q选择字)在编辑器里的功能是先选择?a target="_blank">字符</a>处的单词Q然后选择源代码的扩展区域。D例来_先选择一个方法名Q然后是调用q个Ҏ的表辑ּQ然后是整个语句Q然后包容块Q等{?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">11<span style="font-family: 宋体">、如果你不想让指CZ件细节的“亮球”图标在编辑器上显C,通过?/span><strong><span style="color: #008080">Alt-Enter</span></strong><span style="font-family: 宋体">l合键打开所有事件列表然后用鼠标点击它就可以把这个事件文本附件的亮球|成非活动状态?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">q样以后׃会有指示Ҏ事g的亮球出CQ但是你仍然可以?/span><strong><span style="color: #008080">Alt-Enter</span></strong><span style="font-family: 宋体">快捷键用它?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">12<span style="font-family: 宋体">、在使用</span>CodeCompletion<span style="font-family: 宋体">Ӟ可以用逗点Q?/span>.<span style="font-family: 宋体">Q?a target="_blank">字符</a>Q逗号Q,Q分PQ)Q空格和其它<a target="_blank">字符</a>输入弹出列表里的当前高亮部分。选择的名字会随着输入?a target="_blank">字符</a>自动输入到编辑器里?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">13<span style="font-family: 宋体">、在M工具H口里?/span><strong><span style="color: #008080">Escape</span></strong><span style="font-family: 宋体">键都可以把焦点移到编辑器上?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.5pt" align="left"><span style="font-size: small"><strong><span style="color: #008080">Shift-Escape</span></strong><span style="font-family: 宋体">不仅可以把焦点移到编辑器上而且q可以隐藏当前(或最后活动的Q工L口?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">F12<span style="font-family: 宋体">键把焦点从编辑器Ud最q用的工具H口?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">14<span style="font-family: 宋体">、在调试<a target="_blank">E序</a>时查看Q何表辑ּ值的一个容易的Ҏ是在编辑器中选择文本Q可以按几次</span><strong><span style="color: #008080">Ctrl-W</span></strong><span style="font-family: 宋体">l合键更有效地执行这个操作)然后?/span>Alt-F8<span style="font-family: 宋体">?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">15<span style="font-family: 宋体">、要打开~辑器脱<a target="_blank">字符</a>处用的cL者方?/span>Java<span style="font-family: 宋体">文的浏览器Q就?/span><strong><span style="color: #008080">Shift-F1</span></strong><span style="font-family: 宋体">Q右键菜单的</span><strong><span style="color: #008080">External JavaDoc</span></strong><span style="font-family: 宋体">Q?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">要用这个功能须要把加入览器的路径Q在“</span><strong><span style="color: #008080">General</span></strong><span style="font-family: 宋体">”选项中设|(</span><strong><span style="color: #008080">Options | IDE Settings</span></strong><span style="font-family: 宋体">Q,另外q要把创建的</span>Java<span style="font-family: 宋体">文加入到工E中Q?/span><strong><span style="color: #008080">File | Project Properties</span></strong><span style="font-family: 宋体">Q?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">16<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Ctrl-F12</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">View | File Structure Popup</span></strong><span style="font-family: 宋体">Q键你可以在当前~辑?a target="_blank">文g</a>中快速导航?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">q时它会昄当前cȝ成员列表。选中一个要D的元素然后按</span>Enter<span style="font-family: 宋体">键或</span>F4<span style="font-family: 宋体">键。要L地定位到列表中的一个条目,只需键入它的名字卛_?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">17<span style="font-family: 宋体">、在代码中把光标|于标记W或者它的检查点上再?/span><strong><span style="color: #008080">Alt-F7</span></strong><span style="font-family: 宋体">Q右键菜单中?/span><strong><span style="color: #008080">Find Usages…</span></strong><span style="font-family: 宋体">Q会很快地查扑ֈ在整个工E中使用地某一个类、方法或者变量的位置?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">18<span style="font-family: 宋体">、按</span><strong><span style="color: #008080">Ctrl-N</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Go to | Class…</span></strong><span style="font-family: 宋体">Q再键入cȝ名字可以快速地在编辑器里打开M一个类。从昄出来的下拉列表里选择cR?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821482.gif" _counted="undefined" />同样的方法你可以通过使用</span><strong><span style="color: #008080">Ctrl-Shift-N</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Go to | File…</span></strong><span style="font-family: 宋体">Q打开工程中的?/span>Java<span style="font-family: 宋体"><a target="_blank">文g</a>?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">19<span style="font-family: 宋体">、要D代码中一些地方用到的类、方法或者变量的声明Q把光标攑֜查看上再按</span>Ctrl-B<span style="font-family: 宋体">卛_。也可以通过?/span>Ctrl<span style="font-family: 宋体">键的同时在查看点上单击鼠标键调{到声明处?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821746.gif" _counted="undefined" />20<span style="font-family: 宋体">、把光标攑ֈ查看点上再按</span><strong><span style="color: #008080">Ctrl-Alt-B</span></strong><span style="font-family: 宋体">可以DC个抽象方法的实现代码?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">21<span style="font-family: 宋体">、要看一个所选择的类的承层ơ,?/span><strong><span style="color: #008080">Ctrl-H</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Browse Type Hierarchy</span></strong><span style="font-family: 宋体">Q即可。也可以Ȁzȝ辑器中的l承关系视图查看当前~辑cȝl承关系?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821626.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">22<span style="font-family: 宋体">、?/span><strong><span style="color: #008080">Ctrl-Shift-F7</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Search | Highlight Usages in File</span></strong><span style="font-family: 宋体">Q可以快速高亮显C当?a target="_blank">文g</a>中某一变量的用地斏V按</span>Escape<span style="font-family: 宋体">清除高亮昄?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">23<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Alt-F3</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Search | Incremental Search</span></strong><span style="font-family: 宋体">Q在~辑器中实现快速查查找功能?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">?#8220;</span><strong><span style="color: #008080">Search for:</span></strong><span style="font-family: 宋体">”提示工具里输?a target="_blank">字符</a>Q用箭头键朝前和朝后搜索。按</span><strong><span style="color: #008080">Escape</span></strong><span style="font-family: 宋体">退出?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">24<span style="font-family: 宋体">、按</span><strong><span style="color: #008080">Ctrl-J</span></strong><span style="font-family: 宋体">l合键来执行一些你Ch?/span><strong><span style="color: #008080">Live Template</span></strong><span style="font-family: 宋体">~写。比如,?#8220;</span><strong><span style="color: #008080">it</span></strong><span style="font-family: 宋体">”然后?/span><strong><span style="color: #008080">Ctrl-J</span></strong><span style="font-family: 宋体">看看有什么发生?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821991.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">25<span style="font-family: 宋体">?/span><strong><span style="color: #008080">Introduce Variable</span></strong><span style="font-family: 宋体">整合帮助你简化代码中复杂的声明。D个例子,在下面的代码片断里,在代码中选择一个表辑ּQ?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822339.gif" _counted="undefined" /> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">然后?/span><strong><span style="color: #008080">Ctrl-Alt-V</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Refactor | Introduce Variable</span></strong><span style="font-family: 宋体">Q就会出C面的l果Q?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822884.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">26<span style="font-family: 宋体">?/span><strong><span style="color: #008080">Ctrl-Shift-J</span></strong><span style="font-family: 宋体">快捷键把两行合成一行ƈ把不必要的空格去掉以匚w你的代码格式?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">27<span style="font-family: 宋体">?/span><strong><span style="color: #008080">Ctrl-Shift-Backspace</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Go to | Last Edit Location</span></strong><span style="font-family: 宋体">Q让你调转到代码中所做改变的最后一个地斏V?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">多按几次</span><strong><span style="color: #008080">Ctrl-Shift-Backspace</span></strong><span style="font-family: 宋体">查看更深的修改历双Ӏ?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">28<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Tools | Reformat Code…</span></strong><span style="font-family: 宋体">Ҏ你的代码样式参考(查看</span><strong><span style="color: #008080">Options | IDE Setting | Code Style</span></strong><span style="font-family: 宋体">Q格式化代码?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">使用</span><strong><span style="color: #008080">Tools | Optimize Imports…</span></strong><span style="font-family: 宋体">可以Ҏ讄Q查?/span><strong><span style="color: #008080">Options | IDE Setting | Code Style | Imports</span></strong><span style="font-family: 宋体">Q自?#8220;优化”</span><strong><span style="color: #008080">imports</span></strong><span style="font-family: 宋体">Q清除无用的</span><strong><span style="color: #008080">imports</span></strong><span style="font-family: 宋体">{)?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">29<span style="font-family: 宋体">、?/span>IDEA<span style="font-family: 宋体">?/span><strong><span style="color: #008080">Live Templates | Live Templates</span></strong><span style="font-family: 宋体">让你在眨眼间创徏许多典型代码。比如,在一个方法里键入</span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822461.gif" _counted="undefined" /></span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">再按</span><strong><span style="color: #008080">Tab</span></strong><span style="font-family: 宋体">键看有什么事情发生了?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822475.gif" _counted="undefined" /></span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">?/span>Tab<span style="font-family: 宋体">键在不同的模板域内移动。查?/span><strong><span style="color: #008080">Options | Live Templates</span></strong><span style="font-family: 宋体">获取更多的细节?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">30<span style="font-family: 宋体">、要查看一?a target="_blank">文g</a>中修改的本地历史Q激zd键菜单里?/span><strong><span style="color: #008080">Local <a target="_blank">VC</a>S | Show History…</span></strong><span style="font-family: 宋体">。也怽可以D不同?a target="_blank">文g</a>版本Q看看它们的不同之处再回滚到以前的Q何一个版本吧?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-family: 宋体"><span style="font-size: small">使用同样的右键菜单条目还可以看到一个目录里修改的历双Ӏ有了这个特性你׃会丢׃Q何代码了?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">31<span style="font-family: 宋体">、如果要了解主菜单里每一个条目的用途,把鼠标指针移到菜单条目上再应?a target="_blank">E序</a>框架的底部的状态栏里就会显C它们的一些简短描qͼ也许会对你有帮助?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">32<span style="font-family: 宋体">、要在编辑器里显C方法间的分隔线Q打开</span><strong><span style="color: #008080">Options | IDE Settings | Editor</span></strong><span style="font-family: 宋体">Q选中“</span><strong><span style="color: #008080">Show method separators</span></strong><span style="font-family: 宋体">”查盒Q?/span><strong><span style="color: #008080">checkbox</span></strong><span style="font-family: 宋体">Q?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">33<span style="font-family: 宋体">?strong><span style="color: #008080">?/span></strong></span><strong><span style="color: #008080">Alt-Up</span></strong><span style="font-family: 宋体">?/span><strong><span style="color: #008080">Alt-Down</span></strong><span style="font-family: 宋体">键可以在~辑器里不同的方法之间快速移动?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">34<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">F2/Shift-F2</span></strong><span style="font-family: 宋体">键在高亮昄的语法错误间跌{?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">?/span><strong><span style="color: #008080">Ctrl-Alt-Down/Ctrl-Alt-Up</span></strong><span style="font-family: 宋体">快捷键则可以在编译器错误信息或者查找操作结果间跌{?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">35<span style="font-family: 宋体">、通过?/span><strong><span style="color: #008080">Ctrl-O</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Code | Override Methods…</span></strong><span style="font-family: 宋体">Q可以很Ҏ地重载基本类地方法?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">要完成当前类</span><strong><span style="color: #008080">implements</span></strong><span style="font-family: 宋体">的(或者抽象基本类的)接口的方法,׃?/span><strong><span style="color: #008080">Ctrl-I</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Code | Implement Methods…</span></strong><span style="font-family: 宋体">Q?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">36<span style="font-family: 宋体">、如果光标置于一个方法调用的括号_?/span><strong><span style="color: #008080">Ctrl-P</span></strong><span style="font-family: 宋体">会显CZ个可用参数的列表?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822703.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">37<span style="font-family: 宋体">、要快速查看编辑器?a target="_blank">字符</a>处用的cLҎ?/span>Java<span style="font-family: 宋体">文档Q按</span><strong><span style="color: #008080">Ctrl-Q</span></strong><span style="font-family: 宋体">Q在弹出菜单?/span><strong><span style="color: #008080">Show Quick JavaDoc</span></strong><span style="font-family: 宋体">里)卛_?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822202.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">38<span style="font-family: 宋体">、像</span><strong><span style="color: #008080">Ctrl-Q</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Show Quick JavaDoc</span></strong><span style="font-family: 宋体">昄z?/span>Java<span style="font-family: 宋体">文Q,</span><strong><span style="color: #008080">Ctrl-P</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Show Parameter Info</span></strong><span style="font-family: 宋体">昄参数信息Q,</span><strong><span style="color: #008080">Ctrl-B</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Go to Declaration</span></strong><span style="font-family: 宋体">跌{到声明)Q?/span><strong><span style="color: #008080">Shift-F1</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">External JavaDoc</span></strong><span style="font-family: 宋体">外部</span>Java<span style="font-family: 宋体">文Q以及其它一些快捷键不仅可以在编辑器里用,也可以应用在代码完成右键列表里?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">39<span style="font-family: 宋体">?/span><strong><span style="color: #008080">Ctrl-E</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">View | Recent Files</span></strong><span style="font-family: 宋体">Q弹出最q访问的<a target="_blank">文g</a>右键列表。选中<a target="_blank">文g</a>?/span><strong><span style="color: #008080">Enter</span></strong><span style="font-family: 宋体">键打开?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">40<span style="font-family: 宋体">、在</span>IDEA<span style="font-family: 宋体">中可以很Ҏ地对你的c,Ҏ以及变量q行重命名ƈ在所有用到它们的地方自动更正?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">试一下,把编辑器?a target="_blank">字符</a>|于M一个变量名字上然后?/span><strong><span style="color: #008080">Shift-F6</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">Refactor | Rename…</span></strong><span style="font-family: 宋体">Q。在对话框里键入要显C地新名字再?/span>Enter<span style="font-family: 宋体">。你会浏览到使用q个变量地所有地方然后按“</span><strong><span style="color: #008080">Do Refactor</span></strong><span style="font-family: 宋体">”按钮l束重命名操作?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">41<span style="font-family: 宋体">、要在Q何视图(</span><strong><span style="color: #008080">Project View</span></strong><span style="font-family: 宋体">工程视图Q?/span><strong><span style="color: #008080">Structure View</span></strong><span style="font-family: 宋体">l构视图或者其它视图)里快?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">选择当前~辑地部分(c,<a target="_blank">文g</a>Q方法或者字D)Q按</span><strong><span style="color: #008080">Alt-F1</span></strong><span style="font-family: 宋体">Q?/span><strong><span style="color: #008080">View | Select in…</span></strong><span style="font-family: 宋体">Q?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822274.gif" _counted="undefined" /></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">42<span style="font-family: 宋体">、在“</span><strong><span style="color: #008080">new</span></strong><span style="font-family: 宋体">”<a target="_blank">字符</a>后实例化一个已知类型对象时也许你会用到</span>SmartType<span style="font-family: 宋体">代码完成q个Ҏ。比如,键入</span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822960.gif" _counted="undefined" /> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">再按</span><strong><span style="color: #008080">Ctrl-Shift-Space</span></strong><span style="font-family: 宋体">Q?/span></span> </p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822657.gif" _counted="undefined" /></span></p> <br /> <br /> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">43<span style="font-family: 宋体">、通过使用</span>SmartType<span style="font-family: 宋体">代码完成Q在</span>IDEA<span style="font-family: 宋体">中创建接口的整个匿名</span><strong><span style="color: teal">implementation</span></strong><span style="font-family: 宋体">也是非常Ҏ的,比如Q对于一?/span>listener<span style="font-family: 宋体">Q监听器Q,可以键入</span></span></p> <p style="text-indent: 22.2pt" align="left"><span style="font-family: 宋体"><span style="font-size: small"> Component component;</span></span></p> <p style="text-indent: 22.2pt" align="left"><span style="font-family: 宋体"><span style="font-size: small"> component.addMouseListener(</span></span></p> <p style="text-indent: 22.2pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">    new </span><strong><em><span style="color: #005555; font-family: Verdana"><caret is here></span></em></strong> </span></p> <p style="text-indent: 22.2pt" align="left"><span style="font-family: 宋体"><span style="font-size: small"> );</span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">然后再按</span><strong><span style="color: teal">Ctrl-Shift-Space</span></strong><span style="font-family: 宋体">看看有什么发生了?/span></span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">44<span style="font-family: 宋体">、在你需要设|一个已知类型的表达式的值时?/span>SmartType<span style="font-family: 宋体">代码完成也很有帮助。比如,键入</span></span></p> <p style="text-indent: 22.2pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">String s = (</span><strong><em><span style="color: #005555; font-family: Verdana"><caret is here></span></em></strong> </span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt"><span style="font-family: 宋体">再按</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Ctrl-Shift-Space</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">看看会有什么出现?/span></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">45</span><span style="font-family: 宋体"><span style="font-size: 10.5pt">、在所有视N都提供了速查功能Q在树里只需键入<a target="_blank">字符</a>可以快速定位到一个条目?/span></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">46</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">、当你想用代码片断捕捉异常时Q在~辑器里选中q个片断Q按</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Ctrl-Alt-T</span></strong><span style="font-size: 10.5pt"><span style="font-family: 宋体">Q?/span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Code | Surround with…</span></strong><span style="font-size: 10.5pt"><span style="font-family: 宋体">Q然后选择“</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">try/catch</span></strong><span style="font-size: 10.5pt"><span style="font-family: 宋体">”。它会自动生代码片断中抛出的所有异常的捕捉块。在</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Options | File Templates | Code tab</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">中你q可以自己定制生捕捉块的模ѝ?/span></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-family: 宋体"><span style="font-size: 10.5pt">用列表中的其它项可以包围别的一些结构?/span></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822252.gif" _counted="undefined" /></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">47</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">、在使用代码完成Ӟ?/span></span><span style="font-size: 10.5pt; font-family: 'Times New Roman'">Tab</span><span style="font-family: 宋体"><span style="font-size: 10.5pt">键可以输入弹出列表里的高亮显C部分?/span></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt"><span style="font-family: 宋体">不像?/span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Enter</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">键接受输入,q个选中的名字会覆盖掉脱<a target="_blank">字符</a>双名字的其它部分。这一点在用一个方法或者变量名替换另一个时特别有用?/span></span></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">48</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">、在声明一个变量时代码完成Ҏ会l你昄一个徏议名。比如,开始键?#8220;</span></span><span style="font-size: 10.5pt; font-family: 'Times New Roman'">private FileOutputStream</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">”然后?/span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Ctrl-Space</span></strong></p> <p style="text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-size: 10.5pt"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822498.gif" _counted="undefined" />?/span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Options | IDE Setting | Code Style</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">中还可以为本地变量,参数Q实例及静态字D定制名字?/span></span></span></p> <img src ="http://m.tkk7.com/yifeng/aggbug/223941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-08-24 06:06 <a href="http://m.tkk7.com/yifeng/archive/2008/08/24/223941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://blcvs.com" target="_blank">鶹VAѾƷ</a>| <a href="http://yidazn.com" target="_blank">ƷƵ</a>| <a href="http://mogo321.com" target="_blank">ղ2021</a>| <a href="http://4438xa48.com" target="_blank">þþþAV</a>| <a href="http://www97544.com" target="_blank">þAVҹƷһ</a>| <a href="http://hjndgb.com" target="_blank">˳7777777</a>| <a href="http://blcvs.com" target="_blank">AVۺɫһAV</a>| <a href="http://1444000.com" target="_blank">޹պƵ</a>| <a href="http://muguangmi.com" target="_blank">ƷƬ߹ۿ</a>| <a href="http://cn-zggx.com" target="_blank">޸Ʒһ</a>| <a href="http://www9797nn.com" target="_blank">޳AVƬWWWɫè</a>| <a href="http://yinyinai155.com" target="_blank">vaĻþ</a>| <a href="http://43sihu.com" target="_blank">߲</a>| <a href="http://guoyit.com" target="_blank">ƵƵ</a>| <a href="http://delvheng.com" target="_blank">һɪ </a>| <a href="http://smalody.com" target="_blank">**ʵëƬѹۿ</a>| <a href="http://gg596gg.com" target="_blank">91Ƶַ</a>| <a href="http://yuase.com" target="_blank">18ֹۿ˽ӰԺ</a>| <a href="http://rseav.com" target="_blank">߹͵Ʒ</a>| <a href="http://ningxialanh.com" target="_blank">ĻmvѸӰ</a>| <a href="http://livejimmy.com" target="_blank">AVվ</a>| <a href="http://t66p.com" target="_blank">ۺɫ߲</a>| <a href="http://qvod-player.com" target="_blank">AV뾫Ʒ</a>| <a href="http://222222se.com" target="_blank">þ޾ƷĻ</a>| <a href="http://czhos.com" target="_blank">һþþþ</a>| <a href="http://c7372.com" target="_blank">AVɫ߹ۿ</a>| <a href="http://5s6b.com" target="_blank">޻Ƭֻѹۿ</a>| <a href="http://8884493.com" target="_blank">ҹѿƬڵ</a>| <a href="http://15831883389.com" target="_blank">ѹվ߹ۿ15</a>| <a href="http://88bgbg.com" target="_blank">ѧһëƬѿ</a>| <a href="http://rhacu.com" target="_blank">վѹۿ</a>| <a href="http://pohezi.com" target="_blank">ҳ˿</a>| <a href="http://qinglou31.com" target="_blank">ձþþþĻ</a>| <a href="http://www-715111.com" target="_blank">þþƷAV</a>| <a href="http://www52a.com" target="_blank">͵͵APP</a>| <a href="http://juguanghr.com" target="_blank">ƷѾþþþùһ </a>| <a href="http://xww678.com" target="_blank">Թ24 </a>| <a href="http://se969.com" target="_blank">պ޹Ƶ</a>| <a href="http://xxxck.com" target="_blank">СƵ</a>| <a href="http://gttest5.com" target="_blank">˾Ʒձվ</a>| <a href="http://cnkaiertong.com" target="_blank">avӰ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>