这一直困扰着我。关于我的代码是如何格式化的,我真的很迂腐,我的成员变量的顺序对我来说非常重要。
如果我有这样的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
}
理想情况下,我想突出显示我要移动的构造函数参数,然后按左/右键输入一些命令。
这是否存在,或者有哪些替代方案?
答案 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步骤,但它非常简单,满足你的字段排序约束,适用于任意复杂的构造函数参数排序。