【问题标题】:Eclipse Formatting. Remove new line before opening brace for blockEclipse 格式化。在为块打开大括号之前删除新行
【发布时间】:2013-04-13 11:33:50
【问题描述】:

有没有办法阻止 Eclipse 在大括号之前添加新行?

Eclipse 格式如下代码

p = new JPanel(new GridLayout(0, 1)); {
    p.add(login);
    p.add(password);
}
frame.add(p, BorderLayout.EAST);

p = new JPanel(new GridLayout(0, 1));
{
    p.add(login);
    p.add(password);
}
frame.add(p, BorderLayout.EAST);

【问题讨论】:

  • 你为什么要这样做?该区块为匿名区块,与Panel的声明完全无关。您确定不会将其与附加到面板的处理程序的代码混淆吗?这将按照您的意愿进行格式化。
  • 我使用匿名块使重读更容易。所有这些块内容都将添加到面板并缩进。
  • 酷。我也在使用这种技术来隐藏重复的局部变量和/或解耦一些代码片段。

标签: java eclipse block braces


【解决方案1】:

我有时也会使用这种技术。

我认为您将无法在 Eclipse 中执行此操作。

我会说,这很好:)

想一想,p = new JPanel(new GridLayout(0, 1)); 不是控制后续块的语句,因此它无法打开它。阅读代码时,当我们找到} 时,我们直观地期望开头的 for/if/etc 是{ 的同义词。但是只有p = new ... 这没有任何意义——首先想到的是,IF 或其他东西在哪里! :)

我们只希望块与外部块分开 - 在文本上或在 vars 可见性中。因此,当向上滚动时,我们在相同的缩进处找到了起始 {(之前没有控制或其他语句)——就是这样。没有其他想法,一切都很好。

只要改变你的想法,你就会在排队时享受{

附言我使用标准格式,因此所有其他起始大括号都在我的代码的行尾。

【讨论】:

  • 谢谢你的澄清,在这个意义上我同意你的看法。这只是我一直用于这种特殊情况的约定。我会以不同的方式思考它......
【解决方案2】:

转到项目->属性->Java Coe样式->格式化程序->配置工作区设置->编辑->大括号

将“匿名类声明”改为“同一行”

【讨论】:

  • 所有大括号位置都定义为“同一行”
【解决方案3】:

我也非常喜欢在创建类时将初始化代码分组到一个块中。因此,我使用了一个利用静态初始化器的小技巧:

p = new JPanel(new GridLayout(0, 1)) {{
    add(login);
    add(password);
}};
frame.add(p, BorderLayout.EAST);

如您所见,您可以调用“add”,而无需在它们前面加上“p”。如:“p.add”,您不再需要担心 Eclipse 将大括号放在下一行的开头,因为分号放置在整个块的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2015-06-11
    相关资源
    最近更新 更多