Eclipse 的隐藏功能 [已关闭]Ctrl-2 某物模板完成分配到新字段

2022-08-31 10:36:14

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

汤姆


答案 1

不要忘记++,它显示了所有键盘快捷键组合的列表(以防万一您忘记了此处列出的任何一个)。CtrlShiftL


答案 2

Ctrl-2 某物

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

以前,我正在键入,比如说(|光标位置):

Display display = new |

然后我按 Ctrl-空格键完成构造函数调用。现在我输入:

new Display()|

并按 Ctrl-2 L,结果为:

Display display = new Display()|

这真的加快了速度。(Ctrl-2 F 执行相同的操作,但分配给新字段而不是新变量。

另一个好的快捷方式是Ctrl-2 R:在文件中重命名。在重命名局部变量等内容时,它比重命名重构(Alt-Shift-R)快得多。

实际上,我转到了Keys自定义首选项页面,并为Ctrl-2-something分配了各种其他快速修复程序。例如,我现在按 Ctrl-2 J 拆分/连接变量声明,按 Ctrl-2 C 将内部类提取到顶级,按 Ctrl-2 T 将 throw 语句添加到函数中,等等。有大量可分配的快速修复,选择您喜欢的快速修复并将其分配给Ctrl-2快捷方式。

模板

在我的“npe”模板中,我的另一个最爱,定义为:

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

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

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

完成

一些代码完成技巧:

  • 骆驼案例支持在另一个答案中提到:键入ctM,获取当前TimeMillis
  • 默认构造函数:在没有默认构造函数的类声明中,按住 Ctrl-空格键,第一个选择是创建一个
  • 重载:在类声明中开始键入可以重载的方法的名称,Ctrl-空格键,选择一个
  • getter/setter creation: type “get”, Ctrl-Space, select a getter to create;与“is”和“set”相同

分配到新字段

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

  1. 如果还没有构造函数,请添加一个构造函数。(Ctrl-空格键放在类声明中的任意位置,选择第一个建议。

  2. 添加一个参数(|是游标位置):

    public class MyClass {
        public MyClass(int something|) {
        }
    }
    
  3. 按 Ctrl-1,选择“分配给新字段”。您将获得:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            this.something = something;
        }
    }
    
  4. 如果合适,请添加空指针检查(请参阅上面的“npe”模板):

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            npe|
            this.something = something;
        }
    }
    

    点击 Ctrl-空格键,得到:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            if (something == null)
                throw new NullPointerException("something is null");
            this.something = something;
        }
    }
    

节省时间的好方法!


推荐