假设我有一堆实现了javabean-style的类,我想摆脱getter / setter而只是拥有公共字段。有什么方法可以在不破坏编译的情况下使用IntelliJ 14有效地重构它?
示例 - 之前:
class Baratheon {
private String stannis;
public String getStannis() {
return stannis;
}
public void setStannis(String stannis) {
this.stannis = stannis;
}
}
class Lannister {
public Lannister() {
Baratheon b = new Baratheon();
b.setStannis("dead");
}
}
- 后:
class Baratheon {
public String stannis;
}
class Lannister {
public Lannister() {
Baratheon b = new Baratheon();
b.stannis = "dead";
}
}
答案 0 :(得分:2)
您的重构涉及的明显步骤是:
将字段设为公开,保留访问者。
将客户端代码更改为直接访问字段而不是通过访问者。
删除访问者。
你可以利用intellij中的'inline ...'重构(Ctrl + Shift + n)来帮助完成第2步。
我认为intellij中没有一个重构工具可以完成整个工作,请记住,只有整个受影响的代码库都在一个项目中才能实现。你可以考虑编写一个plugin来完成工作。
答案 1 :(得分:0)
1.可以访问与getter相同的字段 2.右键单击getter然后选择refactor / inline ...(在Android Studio中)