关于java:Eclipse的隐藏功能

Hidden features of Eclipse

好吧,这可能是一个蹩脚的问题,但每个人使用这些东西的方式都不同。对于这个IDE来说,最好的省时方法是什么?汤姆


不要忘记ctrl+shift+l,它显示所有键盘快捷方式组合的列表(以防您忘记此处列出的任何组合)。


ctrl-2之类的

似乎没有人提到ctrl-2l(分配给新的局部变量)和ctrl-2f(分配给新的字段),这些都改变了我编写代码的方式。

以前,我在输入,比如(是光标位置):

1
Display display = new |

然后我按下ctrl空格来完成构造函数调用。现在我输入:

1
new Display()|

按ctrl-2 l,结果是:

1
Display display = new Display()|

这真的加快了速度。(ctrl-2f执行相同的操作,但会分配给一个新字段,而不是一个新变量。)

另一个好的快捷方式是ctrl-2r:rename in file。当重命名局部变量之类的东西时,它比重命名重构(alt-shift-r)快得多。

实际上,我转到了"键自定义首选项"页面,并为ctrl-2-something分配了各种附加的快速修复程序。例如,我现在按ctrl-2j来拆分/联接变量声明,按ctrl-2c将内部类提取到顶层,按ctrl-2t将throw声明添加到函数中,等等。有很多可分配的快速修复,选择您最喜欢的,并将它们分配到ctrl-2快捷方式。

模板

在我的"NPE"模板中,我的另一个最爱,定义为:

1
2
if (${arg:localVar} == null)
    throw new ${exception:link(NullPointerException,IllegalArgumentException)}("${arg:localVar} is null");

这允许我在每个函数开始时快速添加空参数检查(尤其是那些只将参数保存到字段中或将其添加到集合中的函数,尤其是构造函数),这对于早期检测错误非常有用。

请访问www.tarantsov.com/eclipse/templates/查看更多有用的模板。我不会在这里列出它们,因为有很多,而且我经常添加新的。

完成

一些代码完成技巧:

  • 另一个答案中提到的camel案例支持:类型ctm,获取currentTimeMillis
  • 默认构造函数:在没有默认构造函数push ctrl空格的类声明中,第一个选择是创建一个
  • 重载:在类声明中开始键入方法的名称,可以重载、ctrl-space和pick-one
  • getter/setter创建:键入"get",ctrl space,选择要创建的getter;与"is"和"set"相同

分配到新字段

这就是我添加字段的方式。

  • 如果还没有构造函数,请添加一个。(在类声明中的任意位置使用ctrl-space,选择第一个建议。)

  • 添加参数(是光标位置):

    1
    2
    3
    4
    public class MyClass {
        public MyClass(int something|) {
        }
    }
  • 按ctrl-1,选择"分配到新字段"。你得到:

    1
    2
    3
    4
    5
    6
    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            this.something = something;
        }
    }
  • 如果合适,添加一个空指针检查(参见上面的"npe"模板):

    1
    2
    3
    4
    5
    6
    7
    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            npe|
            this.something = something;
        }
    }

    点击ctrl space,获取:

    1
    2
    3
    4
    5
    6
    7
    8
    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            if (something == null)
                throw new NullPointerException("something is null");
            this.something = something;
        }
    }
  • 省时的好方法!


    ctrl-shift-r和它的伙伴ctrl-shift-t分别打开一个资源或类型。资源包括开放项目中的所有文件(包括非Java文件),类型包括您的项目中的Java类型,或包含在项目中的库。


    crtl+1是我的最爱。红色蠕动的快速修复。

    它也位于编辑菜单->快速修复。


    ctrl+shift+o组织导入,这样可以很好地格式化导入,删除不需要的导入,并添加缺少的导入。


    ctrl-j开始增量查找。

    按ctrl-j,然后开始键入。使用向上/向下查找您键入内容的上一个/下一个实例。

    ctrl-shift-j向后搜索。


    键入"syso",然后按ctrl+spaceakbd将其扩展到system.out.println()。

    特雷斯手巧。


    ctrl+3会显示任何菜单命令的预先输入列表。


    • ctrl-shift-g:查找光标下方法或字段的用法,这对于理解代码是绝对必要的。
    • ctrl-f6:在打开的编辑器窗口列表之间导航,如果只键入一次并放开,则切换回上一个编辑器窗口,连续执行此操作是来回跳转的好方法。
    • ctrl-t:在类或方法上,将向您显示类型层次结构,对于查找接口方法的实现非常有用,例如


    单击方法声明中的返回类型将突出显示该方法的所有退出点。

    例如:

    1
    2
    3
    4
    5
    6
    7
    1: public void foo()
    2: {
    3:   somecode();
    4:    if ( blah ) return;
    5:
    6:    bar();
    7: }

    单击void将突出显示第4行的返回和第7行的关闭。

    更新:它甚至适用于try catch块。如果将光标放在catch块中的exception上,Eclipse将突出显示可能引发该异常的方法。


    代码完成支持camelcase,例如,键入CWAR将显示ClassWithAReallyLongName的结果。开始使用此功能,您将不再键入其他长类名。

    (从另一个答案复制的部分,因为我认为只有一个提示/提示的答案最适合轮询)


    Alt向上箭头将当前所选内容向上移动一行,Alt向下箭头将其向下移动。我也经常使用alt-shift向上/向下箭头。ctrl-k和ctrl-shift-k非常方便,可以查找当前所选内容的下一个/上一个匹配项(如果未选择任何内容,则查找最后一个匹配项)。


    有一个选项可以自动将左大括号和分号放在"正确"位置。您必须启用这个功能-选择窗口/首选项并在搜索框中键入"brace",应该很容易找到(这台计算机上没有Eclipse)。效果:

    • 在行的任何位置键入分号都将放在该行的末尾(如Word/OpenOffice:Backspace,如果希望将其放在原始位置)
    • 当您刚在另一对大括号内时,键入一个左大括号将把它放在此行的末尾-如本例中所示

    (""是光标):

    1
    if(i==0|)

    现在键入""将导致

    1
    if(i==0) {|


    hippie expand/word complete,afaik受emacs的启发:将根据该文件中的其他单词自动完成任何编辑器中的任何单词。在Java代码中自动完成字符串内文字,在XML文件中随处可见。

    alt+/


    ctrl+d-删除当前行


    alt-shift-r代表重命名,而不是重构。重构是一个更通用的术语(如本书所定义)。

    不过,它是我最喜欢的重构之一。其他包括:

    • alt-shift-m:提取方法(选择代码块或表达式时)

    • alt-shift-l:提取局部变量(当选择表达式时)

    当我不记得(或不想输入)方法的结果类型时,提取局部变量特别有用。假设您的类中有一个方法JdbcTemplate createJdbcTemplate(),那么编写一些代码,例如:

    1
    2
    3
    void someQuery() {
        createJdbcTemplate()
    }

    选择表达式createJdbcTemplate(),单击alt-shift-l,键入变量名,然后按Enter键。

    1
    2
    3
    void someQuery() {
        JdbcTemplate myTemplate = createJdbcTemplate();
    }


    当然,ctrl+q将转到最后一个编辑位置。它在被电话、老板或其他人打断后非常有用。


    alt+upbkbd或alt+down以移动行


    alt+shift+upbkbd箭头用于升级选择。alt+shift+down正好相反。


    ctrl+shift+m:将类的静态方法或静态属性引用更改为静态导入。

    以前

    1
    2
    3
    4
    import X;

    ...
    X.callSomething();

    1
    2
    3
    4
    import static X.callSomething;

    ...
    callSomething();


    还没有人提到最好的。单击一个类或方法名,然后按CtrL+TaKBD。

    你会得到一个快速的类型层次结构。对于类名,可以看到整个类层次结构。对于一个方法名,您可以得到显示超类和子类的层次结构,该方法的实现与抽象提到的方法或不提到该方法的类不同。

    当您在一个抽象方法声明中,并且很快希望看到它在哪里实现时,这是非常重要的。


    f3一直是我的最爱,打开所选项目的定义。

    ctrl+shift+r有一个有趣的特性,您可以在搜索时仅使用类中的大写驼色字母(例如,键入cwar将显示带有areallylongname的类的结果)。

    alt+shift+w>package explorer使浏览大型项目变得更容易。


    一个非键盘快捷方式的技巧是在提交之前使用团队中的提交集->同步视图来组织更改。

    将一个更改集设置为默认值,您对文件所做的所有更改都将放在该设置中,以便在处理特定缺陷/特性时轻松查看您所做的更改,以及在测试时所做的其他更改等。


    ctrl+space,用于任何地方。

    生成getter和setter。

    使用字段创建构造函数

    提取方法…

    重构->重命名

    按ctrl+o可查看快速大纲。对于继承的大纲,按ctrl+o+ctrl+o。

    f4显示类型层次结构

    打开调用层次结构以显示从何处调用方法。

    CTRL+Shift +T打开Java类型

    ctrl+shift+r打开任何资源。

    Alt+向左或向右键可在文档中的编辑位置前后移动(轻松导航)

    如果知道要执行很多方法,则重写/实现方法(否则,一次选择一个方法,ctrl+space更好)。

    重构->提取接口

    重构->上拉

    重构->下推

    ctrl+shift+o用于组织导入(在键入诸如map等常规类名时,按ctrl+space,然后选择适当的类将直接为您导入)。

    ctrl+shift+f用于格式化(尽管Eclipse内置的格式化程序对于长代码行来说可能有点愚蠢)。

    编辑:哦,是的,一些调试:

    F5:进入(显示详细信息!)

    F6:跨过去(我相信你,下一部分……)

    F7:走开(我本以为我在乎这个方法,但结果我不在乎,把我弄出去!)

    F8:继续(直到到达下一个断点)

    ctrl+shift+i:检查表达式。ctrl+shift+i+ctrl+shift+i:在被检查的表达式上创建监视表达式。

    条件断点:右键单击一个断点,您可以设置一个条件,该条件会触发中断程序的执行(这里提供上下文辅助功能和ctrl+space!)

    F11-上次启动的调试(应用程序)

    ctrl+f11-运行上次启动的(应用程序)


    异常断点

    Eclipse允许您根据异常发生的位置设置断点。您可以通过"j!"访问该选项。alt text调试窗口中的http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png图标。

    alt文本http://blogs.bytecode.com.au/glen/2007/04/06/images/2007/addexceptionwindow.png

    官方的帮助主题"添加Java异常断点"在这方面有更多的内容。

    • 未捕获异常选项是在未捕获位置引发与断点类型相同的异常时暂停执行。
    • 捕获的异常选项是在捕获的位置引发与断点类型相同的异常时挂起执行。
    • 不要忘记在该异常的子类上挂起异常断点:当遇到异常类型的子类时挂起执行。例如,如果将RuntimeException的异常断点配置为在子类上挂起,它也将由NullPointerException触发。

    alt文本http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/reference/breakpoints/images/ref-breakpoint_suspendsubclass.png


    ctrl+alt+upbkbd或ctrl+alt+down复制行


    ctrl+alt+h上的方法,以获取其调用层次结构。快速查看呼叫来源。


    alt+shift+r要重构和重命名。


    不是那么隐蔽,但我是最好的把戏。

    假设为默认设置(并且您没有添加新的代码段)

    突出显示(或选择)文本(字符串或变量)…按Ctrl+Space。点击结束+进入。将触发"sysout"片段,该片段将所选内容作为其参数进行包装。

    如。

    1
    2
    3
    4
    "hello world!"

    becomes
    System.out.println("hello world!");

    我非常喜欢它,所以我为Android的Toast和Log实现了一个类似的代码片段。在手动调试过程中节省大量时间…


    以下是我收集的Eclipse3最有用的键盘快捷键:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Eclipse 3 Favorite Keyboard Shortcuts.
    by -=MaGGuS=-

    Navigate:

    ?   Ctrl + Shift + L – Shows useful keyboard shortcuts in popup window
    ?   Ctrl + H – Search.
    ?   Ctrl + K – Goes to next search match in a single file. Shift + Ctrl + K – goes to previous match.
    ?   F3 - Goes to ‘declaration’ of something. Same as Ctrl + Click.
    ?   Ctrl + Shift + G - Use this on a method name or variable. It will search for references in the code (all the code) to that item.
    ?   Ctrl + O – Shows outline view of the current class or interface.
    ?   Ctrl + T – Shows class hierarchy of the current class or interface. F4 – shows the same in separate tab.
    ?   Ctrl + Shift + T - Open Type. Search for any type globally in the workspace.
    ?   Ctrl + Shift + R – Open Resource. Search for any file inside workspace.
    ?   Ctrl + J – Incremental search. Similar to the search in firefox. It shows you results as you type. Shift + Ctrl +J - Reverse incremental search.
    ?   Ctrl + Q – Goes to the last edit location.
    ?   Ctrl + Left|Right – Go Back/Forward in history.
    ?   Ctrl + L – Go to line number.
    ?   Ctrl + E – This will give you a list of all the source code windows that are currently open. You can arrow up or down on the items to go to a tab.
    ?   Ctrl +PgUp|PgDown – Cycles through editor tabs.
    ?   Ctrl + Shift + Up|Down - Bounces you up and down through the methods in the source code.
    ?   Ctrl + F7 – Switches between panes (views).
    ?   Ctrl + ,|. – Go to the previous/next error. Great in combination with Ctrl + 1.
    ?   Ctrl + 1 on an error – Brings up suggestions for fixing the error. The suggestions can be clicked.
    ?   Ctrl + F4 – Close one source window.

    Edit:

    ?   Ctrl + Space – Auto-completion.
    ?   Ctrl + / – Toggle comment selected lines.
    ?   Ctrl + Shift + /|\ – Block comment/uncomment selected lines.
    ?   Ctrl + Shift + F – Quickly ‘formats’ your java code based on your preferences set up under Window> Preferences.
    ?   Ctrl + I – Correct indentations.
    ?   Alt + Up|Down – move the highlighted code up/down one line. If nothing is selected, selects the current line.
    ?   Ctrl + D – Delete row.
    ?   Alt + Shift + Up|Down|Left|Right – select increasing semantic units.
    ?   Ctrl + Shift + O – Organize Imports.
    ?   Alt + Shift + S – Brings up"Source" menu.
    o   Shift + Alt + S, R – Generate getter/setter.
    o   Shift + Alt + S, O – Generate constructor using fields.
    o   Shift + Alt + S, C – Generate constructor from superclass.
    ?   Alt + Shift + T – Brings up"Refactor" menu.
    ?   Alt + Shift + J – Insert javadoc comment.
    ?   F2 – Display javadoc popup for current item. Shift + F2 – Display javadoc in external browser.

    Run/Debug:

    ?   F11 / Ctrl + F11 – Execute/debug.
    ?   Ctrl + Shift +B – Toggle breakpoint.
    ?   When paused: F5 – Step into, F6 – Step over, F7 – Step out, F8 – Resume.
    ?   Ctrl + F2 – Terminate.

    EOF

    ctrl+shift+l将显示所有当前可用的键盘快捷方式。


    ctrl+,和ctrl+。将文本光标移动到源中的下一个和上一个错误或警告(红色或黄色波形)。当您在重构或粘贴的深度中处理一大块脏代码或坏代码时,这非常有用。结合使用ctrl+1进行建议修复,您可以快速修复代码,而无需将手移到鼠标上。

    事实上,你几乎不用把手指从控制面板上移开…


    隐藏的gem是条件断点。对于跳过循环的某些部分、在某个值为空或满足某个值时暂停等非常有用…只需右键单击断点,Breakpoint Properties->Enable Condition。文本框中甚至还有代码辅助功能!


    ctrl-alt-h打开所选方法的调用层次结构。

    对大型代码基或未知代码基非常有用


    按ctrl+shift+p找到匹配的大括号。在处理长代码时非常有用。


    保存动作岩石。在那里,您可以组织导入(ctrl+shift+o)和代码格式(ctrl+shift+f)。此外,我喜欢alt+shift+r进行重构。

    不过,我最喜欢的是插件:他们可能会让你花费更多的时间,但大部分时间他们提供的质量(主观的,我知道)

    • 代码覆盖模式(ECLEMA)
    • 源静态分析
    • 字节码静态分析(findbugs)
    • 检查方式
    • 春天。

    然后你开始使用强制的源代码控制插件和Maven2插件。

    摇滚!


    ctrl+o是一个弹出的大纲视图,允许您开始键入以筛选名称。

    ctrl+f3的工作原理类似,但它可以根据光标所在的位置打开其他类型的轮廓线。

    打开"保存"操作以清除代码,每次保存时都会自动对代码进行格式化和导入优化。要轻松访问此选项,请在"筛选"框中选择"Windows首选项"开始类型"保存操作",然后打开该选项。

    在新的3.4版本中,打开编辑器窗口顶部的"breadcrumb trail"。有一个新的工具栏按钮。


    如果要将System.out.println("anything")放到代码中,只需执行以下操作:只写",然后标记"并按CRTL空格向上箭头并输入(您应该在"系统输出"上着陆)。

    瞧,它在那儿:)


    您可以按住Ctrl键单击任何类型、字段、方法或变量,Eclipse将带您进入该项的声明:

    IE:

    • 在局部变量上-将您带到函数中的声明语句
    • 在成员变量上-将您带到声明该成员的类文件中的定义(如果在子类中未重写,则返回父类)
    • 在某个类上-将您带到该类的类文件的顶部

    您还可以在一个类型上按住Ctrl键,以调出查找实现的选项。如果您使用的是一个接口,并且希望查看哪些类实现了该接口,那么这将非常有用。它还可以查看哪些超级类和子类可以实现/重写某个函数。


    怎么样:

    ctrl pgup和ctrl pgdn浏览编辑器中打开的文件(如果一直向右按ctrl pgdn,则包括溢出部分)。


    不知道它的快捷键,但在方法中选择一个局部变量,然后右键单击。在重构下是"将局部变量转换为字段"。有时非常有用。真希望有条捷径!


    ctrl+f然后勾选"正则表达式"复选框。从中,您可以使用正则表达式进行搜索,但更强大的是,您可以在替换字符串中包含组匹配(1、$2等,或整个匹配的$0)。


    alt+shift+z-激活"环绕"子菜单。当必须用一个try-catch块包围时很方便。


    很抱歉,如果这是一个副本,但我认为我没有看到这里提到的这个,我扫描了所有的帖子:

    单词完成:

    1
    Alt + /

    是ctrl+space的不错选择。它并不能完全取代ctrl+space,但速度要快得多。不要害怕多次按下它,它会在可能的选项上不断循环。


    在Java编辑器中,CTRL向上或向下移动到在该方向上的方法或字段的最近声明。


    ctrl+h在整个工作区或项目中搜索/替换。


    ctrl alt up/down可向上(或向下)复制一行。然后是alt up/down通常比复制粘贴快得多。


    一个组合可以控制它们。

    CTL+SHTFT+L

    获取所有这些"隐藏"功能的列表。


    安装mousefeed eclipse插件。安装后,每当您单击与快捷方式关联的按钮或菜单项时,它将显示一个带有键盘快捷方式的弹出窗口。


    双击左括号旁边的将突出显示所有代码,直到右括号,反之亦然。


    对于任何方法,shift-f2都将转到javadoc。

    经常使用它。对于库,您需要配置位置,但是对于标准类,它们是由Eclipse预先定义的。


    ctrl-f6在打开的编辑器窗口中循环焦点(使用ctrl-shift-f6向后循环)

    ctrl-f7在Eclipse视图中循环焦点

    ctrl-f8循环Eclipse透视图


    ctrl-1将if转换为条件表达式并返回,拆分一个赋值或将其连接回去,或执行其他类似的小操作。帮助中有一个列表。


    如果使用f3键导航到某个方法的源代码,则通常会浪费时间切换到接口,而不是直接转到实现类(对于DAO、服务等,通常只有一个接口)。例如)

    使用ctrl+鼠标指针指向代码的一个方法,您将能够在直接指向实现(类)或声明(接口)之间进行选择。

    有关此提示的详细信息,请访问:

    http://www.ibm.com/developerworks/opensource/library/os-eclipse-galnav/index.html

    这只在伽利略中可用,您也可以使用ctrl+t。


    我最近将alt enter映射到了与ctrl-1相同的命令。只是要容易一点。

    我也会使用alt+shift+x&t,但我不喜欢集成测试运行程序的工作方式。


    ctrl+shift+enter将当前行向下移动一行,然后在其上方开始键入。ctrl+shift+x将当前所选内容大写,ctrl-shift-y将其更改为小写。CTRL+。自动完成当前单词。这既适用于变量,也适用于字符串(例如,对于数组键来说,它是一个巨大的省时器)。


    不是很隐蔽,但很少有人使用它而不去探索它模板键盘快捷方式

    亚历克斯已经解释过成员类型

    移动线


    ctrl+d删除当前行

    Alt+向上/向下移动所选文本的当前行或块

    ctrl+alt+up/down向上或向下复制当前行或选定文本块

    ctrl+alt+c svn commit(带subversive)

    ctrl+alt+u svn更新(带Subversive)


    ctrl mouselick(左)作为f3转到声明的替代项。


    快速辅助:ctrl+2,后跟f(分配给字段)、l(分配给局部变量)和r(在文件中重命名)

    上次编辑位置:ctrl+q

    查看本文:http://dmy999.com/article/29/using-eclipse-effective


    取决于节省时间对你意味着什么…

    在注释中添加todo和fixme会自动将任务添加到Eclipse中的任务列表中。所以如果有代码需要返回,比如说你正在调试,需要做一些研究,你可以做…

    Fixme意味着它是紧急的,它会变红!在任务窗口中TODO是正常的紧急情况

    1
    2
    3
    4
    5
    //FIXME: This accidentally deletes user accounts
    user.account().delete();

    //TODO: Add some validation before assigning everyone as admin
    user.setPrivilege("Admin");

    还有自动生成的setter/getter。如果您正在创建一个bean或其他东西,这是很好的。假设您声明了一个类,例如:

    1
    2
    3
    4
    5
    6
    public class SomeBean {
        private static int FIRST_VALUE = 0;
        private static int SECOND_VALUE = 1;
        ...
        private static int THOUSANDTH_VALUE = 1000;
    }

    您可以创建所有变量,然后在编辑器中右键单击,转到源代码,然后选择生成setters&getter。这将自动为您创建它们。


    调试时,我发现"显示"视图非常有用。它允许您键入代码(使用自动完成),并允许您运行/显示所写内容的结果。

    试一试!


    ALT+Shift +X+T

    这将运行当前文件作为单元测试。


    我很惊讶没有人提到Eclipse中可用的Emacs键绑定设置。这是我最喜欢的一个小功能;它允许我从Emacs过渡到Eclipse,而在我的导航偏好中几乎没有调整。

    Windows->Preferences->General->Keys->Scheme。


    经常按ctrl+s。这是ctrl+1最好的朋友。


    在比较/补丁设置中启用"忽略空白"是一个实时节省程序!


    我真的有偏见,这是明目张胆的广告…

    不过,我认为我的新Eclipse插件nware是Eclipse的最佳省时工具。在与Eclipse合作多年后,我开发了它,我得出的结论是,我需要一个工具来显示代码的所有关联,而不是学习不同的工具和视图。

    查看我的网站上的演示。


    如果使用Ant构建项目,可以将快捷方式分配给"运行上次启动的外部工具"(如ctrl+enter),它将重复上次的构建。它比标准的alt+shift+x,q容易得多,它还帮助解决了最近Eclipse中在项目中找不到Ant构建文件的错误。


    Windows/Preferences/General/Keys

    定义

    Alt + C

    对于支持向量机提交

    Alt + U

    对于VPN更新

    Shift + Ctrl + N

    用于新建类对话框。


    Ctrl +B:在C++下构建项目

    Ctrl + Shift +F:格式化你的代码(C++)


    Eclipse帮助包含许多有用的资源。只需搜索"提示和技巧"。特别是"技巧和技巧(JDT)"我发现非常有用。


    当然,如果找不到要查找的绑定,或者不喜欢当前的绑定窗口->Preferences->General->Keys将允许您更改,请添加和删除键组合的映射。


    当然,所有这些快捷方式都可以在菜单中找到,但是当你在"区域"中时,谁有时间来做这些。

    我喜欢代码热交换。