【问题标题】:Remove unnecessary braces删除不必要的大括号
【发布时间】:2015-10-05 06:34:20
【问题描述】:

NetBeans 中有没有一种方法可以删除单行语句中不必要的大括号?

我想像这样转换:

if (something) {
    doSomething();
}

if (something) doSomething();

我一直手动执行此操作,但有时我必须使用 alt+shift+f 命令格式化代码,而 netbeans 会再次添加这些大括号。

如果不可能,当我按下alt+shift+f 命令时,有没有办法告诉格式化程序不要添加这些大括号?我知道 Eclipse 可以这样做,我想知道 Netbeans 是否可以。

我已经阅读了thisthis 的答案,显然无法做到,但两者都是面向php 的;这也适用于java?

【问题讨论】:

  • 这是一种可怕的做法,没有不必要的大括号之类的东西,它们是可选的,但要避免微妙的不可能追踪错误并使事情明确尽可能用于未来的维护,它们总是必要! - if (something) { doSomething(); }首选,如果您真的只想将所有内容都放在一行中! IntelliJ IDEA 很容易做到这一点。
  • 重申@JarrodRoberson 所说的话;你应该永远离开没有大括号的语句。这是非常糟糕的做法,并且可能会在以后引入意外行为(错误),然后使调试成为潜在的噩梦。另外,+1 贾罗德
  • @EvanBechtol @Jarrod Roberson,如果我在同一行中执行if (something) { doSomething(); }(没有行刹车和缩进),这仍然是一个糟糕的设计?

标签: java netbeans


【解决方案1】:

我使用的是 Netbeans 8.0。如果您没有完全相同的版本,希望您会发现以下步骤足够相似以使其适合您。

  1. 转到Tools --> Options
  2. 点击顶部的Editor 按钮。
  3. 转到Formatting 选项卡。
  4. 确保Language 组合框已选中Java
  5. Category组合框的值修改为Braces
  6. Braces Generation 下,将if: 的值更改为Eliminate

应用这些更改后,格式化代码将正确删除单行语句的大括号,并为多行语句保留它们。

如果您愿意,您可以对 forwhile 等其他关键字执行相同操作。

编辑

由于对此类请求的有效性问题本身提出了一些激烈的意见,因此我想就编写不带括号的if-else 语句的实践主题发表我自己的评论。

我个人总是使用大括号,即使这意味着多输入一点,并浪费一点屏幕空间。如前所述,这样做更安全。它提供的代码清晰度远远超过任何外观上的好处。

也就是说,我尊重这仍然是个人喜好问题,特别是如果您是唯一维护代码的人。此外,如果您有自动格式化代码的好习惯,那么这将最大限度地减少与误解没有大括号的代码块相关的任何风险,因为自动格式化程序会适当地缩进代码。

但是,如果您在团队环境中工作,我认为您考虑将大括号留在里面会非常体贴。

【讨论】:

  • 谢谢,我猜你的答案,只是说这是一种不好的做法,接受有个人喜好。我知道这可能是大型项目或团队中的问题,我在附加的答案中阅读了它,但我是唯一有权访问该项目的人,我很好奇 NetBeans 是否可以自动执行此操作。再次感谢!
【解决方案2】:

可能的解决方法:

您可以仅在代码的某些部分使用格式化程序。仅突出显示您想要格式化的函数。

【讨论】:

  • 即使不是我正在寻找的答案,它也对我有帮助,我不知道。
猜你喜欢
  • 2019-12-16
  • 2023-02-02
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 1970-01-01
相关资源
最近更新 更多