包装返回值
Wrap Return Value 重构允许您选择一个方法,并创建一个返回值的包装类,或使用一个已有的、兼容的包装类。 所有从所选方法返回的值都将被适当包装,并且对该方法的所有调用都将取消其包装。
包装方法的返回值很有用,如果您的设计发生变化,您希望某个方法返回比最初计划更多的信息。 在包装之后,可以扩展包装类,从而允许方法返回更多数据。 此外,通常会包装原始返回值,从而允许在需要时解耦接口和实现。
安装 Additional Java Refactorings 插件
此功能依赖于 Additional Java Refactorings 插件,您需要安装并启用。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 Marketplace 选项卡,找到 Additional Java Refactorings 插件,然后点击 安装 (如果出现提示,请重启 IDE)。
运行 Wrap Return Value 重构
在编辑器中打开所需的类,并将文本光标放置在您希望包装其返回值的方法上。
在主菜单或上下文菜单中,前往 。
在打开的对话框中,指定新的包装类的名称和包,或者选择一个现有的兼容包装类。
预览并应用更改。
示例
之前 | 之后 |
|---|---|
class Order {
String customer;
String getCustomer() {
return customer;
}
}
|
class Order {
String customer;
Wrapper getCustomer() {
return new Wrapper(customer);
}
}
public class Wrapper {
private final String value;
public Wrapper(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
|
"封装返回值对话框"
使用此重构可以在方法的返回值周围创建一个包装类,或者使用兼容的现有类作为包装类。
条目 | 描述 | |
|---|---|---|
从中包装返回值的方法 | 此只读字段显示所选方法的名称。 | |
创建新类 | 点击此单选按钮以创建一个新的 wrapper 类。 如果选择此选项,请在以下字段中指定类和目标包名。 | |
类名 | 请输入新 wrapper 类的名称。 | |
软件包名称 | 默认情况下,会显示当前的包名称。 您可以在文本字段中键入不同的包名,或者点击省略号按钮,从树视图中选择目标包。 如果所需包不存在,请点击 | |
目标目录 | 使用此字段选择目标目的地目录。 默认情况下,会显示当前目标目录。 您通常根据当前包选择目标目的地。 如果此包存在于多个根目录中,您可以点击箭头按钮并从列表中选择 留在相同的源根目录。 在这种情况下,wrapper 将放置在初始类附近。 您可以点击省略号按钮以打开 选择目标目录 窗口。 您可以选择 目录结构 选项卡来选择另一个目标目录,或者选择 选择邻近类 选项卡在邻近类附近放置一个包装器,例如,您希望将包装器放置在 util 目录中邻近您的 Pair 或 Triple 类,但您不记得确切的包名,将包装器放在 Pair 类附近会为您节省时间。 | |
使用现有类 | 点击此单选按钮以选择用作包装器的现有类。 | |
名称 | 指定所需包装类的名称。 请注意,此类应包含一个构造函数,其参数类型与所讨论的返回值类型相同。 您可以在文本字段中键入全限定类名,或点击省略号按钮并在 选择参数类 对话框中选择所需类。 请注意,您可以从项目类和非项目类中选择所需的包装类。 | |
包装器字段 | 从指定的包装类中选择将存储返回值的字段。 | |
内部类 | 点击此单选按钮以创建内部类。 例如,如果您有一个私有方法,您可能希望这样做。 在这种情况下,您可以将所有内容保留在相同的类中。 | |
名称 | 指定内部类的名称。 |
>