Java:如何在eclipse中快速重新排序构造函数和方法参数?

时间:2015-06-18 08:08:48

标签: java eclipse arguments

这一直困扰着我。关于我的代码是如何格式化的,我真的很迂腐,我的成员变量的顺序对我来说非常重要。

如果我有这样的Java代码:

private ConverterOne converterOne;
private Dao dao;
private ConverterTwo converterTwo;

public MyClass(ConverterOne converterOne, Dao dao, ConverterTwo converterTwo)
{
    // omitted for brevity
}

是否有eclipse功能或插件可以轻松地将其更改为(不剪切和粘贴)?:

private ConverterOne converterOne;
private ConverterTwo converterTwo;
private Dao dao;

public MyClass(ConverterOne converterOne, ConverterTwo converterTwo, Dao dao)
{
    // omitted for brevity
}

理想情况下,我想突出显示我要移动的构造函数参数,然后按左/右键输入一些命令。

这是否存在,或者有哪些替代方案?

3 个答案:

答案 0 :(得分:2)

在eclipse中选择方法,右键单击>重构>改变方法签名。

答案 1 :(得分:1)

您可以从refactor menu中选择更改方法签名,或点击方法上的ALT + SHIFT + C。< / p>

这将打开一个对话框,允许您轻松地重新排序方法参数。

答案 2 :(得分:0)

解决您的同步需求,但需要手动干预。所有这些都假定字段名称始终等于参数标签。

我们从“错误的订单”开始:

private int a;
private int b;
private int c;

public SettingsDialog(int a, int b, int c) {
    ...
}

现在在字段上使用 ALT + UP ALT + DOWN 将它们更改为所需的顺序。

private int a;
private int c;
private int b;

接下来,右键单击编辑器并选择Source > Generate Constructor using Fields ...,将光标放在“错误”构造函数上方。

向导将按照它们在课程中显示的顺序显示字段,以便您可以保持原样(或取消选择无关字段)并单击Finish

这将为您提供一个新的构造函数,在您错误的构造函数之上排序“correct”参数:

private int a;
private int c;
private int b;

public SettingsDialog(int a, int c, int b) {
    ... //(marker1)
}

public SettingsDialog(int a, int b, int c) { //(marker2)
    ...
}

现在将光标放在新构造函数((marker1))主体的第一行,并通过 CTRL + D 删除所有行,直到删除为止旧构造函数的第一行((marker2))。因此,您删除整个新主体以及旧构造函数的签名。现在,新签名位于旧构造函数的主体上方。

这个一个manuel步骤,但它非常简单,满足你的字段排序约束,适用于任意复杂的构造函数参数排序。