【问题标题】:Conditionals simplification in eclipseeclipse中的条件简化
【发布时间】:2012-06-03 10:23:40
【问题描述】:

我继承了充满三元条件的代码。我们的编码标准(在编写代码后引入)不允许这种风格。

我正在寻找一种方法来避免手动重写所有这些语句。是否有设置/插件/某事。其他在 Eclipse 中的工作?

谢谢。

PS。虽然我明确地在寻找基于 Eclipse 的解决方案,但我并不完全反对为此提供一个不错的 ruby​​ 脚本;)

编辑:Joachim Sauer 的“按 Ctrl+1”方法适用于示例案例,但不适用于典型的 Eclipse 生成的 hashCode

int prime = 31;         
int result = 1;
result{Ctrl+1} = prime * result + ((id == null) ? 0 : id.hashCode());

在标记的位置按 Ctrl+1 仅显示以下选项: Rename in file, rename in workspace, Extract local, Copy to criteria Editor, Extract to local variable

如果它可以通用,那就太好了。更好的是不涉及访问每个事件的解决方案。

我在 OpenSUSE 11 上使用 eclipse 3.7,以防万一。

【问题讨论】:

  • 如果你想正确地做,你必须解析java源代码(用java解析器),否则总会有你的脚本没有捕捉到的情况

标签: java eclipse conditional ternary-operator


【解决方案1】:

假设这个示例代码:

    boolean someCondition = true;
    int a = someCondition ? 1 : 2;

将光标放在a 之后并按Ctrl-1。然后选择“用'if-else'替换条件”。

这导致了这个代码:

    int a;
    if (someCondition)
        a = 1;
    else
        a = 2;

使用重构 > 内联 (Ctrl-Shift-I) 以减少不必要的变量声明。

【讨论】:

  • @Joachim - 谢谢,Joachim,不幸的是,这种方法不是很可靠 - 适用于您的示例案例,但不适用于典型的 eclipse 生成的 hashCode。请参阅我的编辑以获取说明。
猜你喜欢
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
  • 2020-02-12
  • 1970-01-01
  • 2021-07-17
  • 2021-05-03
相关资源
最近更新 更多