Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse中的条件简化_Java_Eclipse_Conditional_Ternary Operator - Fatal编程技术网

Java eclipse中的条件简化

Java eclipse中的条件简化,java,eclipse,conditional,ternary-operator,Java,Eclipse,Conditional,Ternary Operator,我继承了带有三元条件的代码。我们的编码标准(在编写代码之后引入)不允许使用这种样式 我正在寻找一种避免手动重写所有这些语句的方法。eclipse中是否有此作业的设置/插件/其他内容 多谢各位 尽管我明确地在寻找一个基于eclipse的解决方案,但我并不完全反对为此使用一个漂亮的ruby脚本;) 编辑:Joachim Sauer的“按Ctrl+1”方法适用于示例情况,但不适用于典型的eclipse生成的哈希代码 int prime = 31; int result = 1; re

我继承了带有三元条件的代码。我们的编码标准(在编写代码之后引入)不允许使用这种样式

我正在寻找一种避免手动重写所有这些语句的方法。eclipse中是否有此作业的设置/插件/其他内容

多谢各位

尽管我明确地在寻找一个基于eclipse的解决方案,但我并不完全反对为此使用一个漂亮的ruby脚本;)

编辑:Joachim Sauer的“按Ctrl+1”方法适用于示例情况,但不适用于典型的eclipse生成的哈希代码

int prime = 31;         
int result = 1;
result{Ctrl+1} = prime * result + ((id == null) ? 0 : id.hashCode());
在标记点按Ctrl+1仅显示以下选项:
在文件中重命名、在工作区中重命名、提取本地、复制到条件编辑器、提取到本地变量

如果它能普遍适用,那就太好了。更好的解决方案是不涉及每次访问


我在OpenSUSE 11上使用eclipse 3.7,以防相关。

假设以下示例代码:

    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)来减少不必要的变量声明。

如果您想正确地执行此操作,您必须解析java源代码(使用java解析器),否则,您的脚本总是会出现不正确的情况catching@Joachim-谢谢,约阿希姆,不幸的是,这种方法不是很可靠——适用于您的示例,但不适用于典型的eclipse生成的哈希代码。请参见我的编辑以获取说明。