codecamp

IntelliJ IDEA向下推送成员

IntelliJ IDEA 向下推送成员重构有助于通过将类成员移至子类或子接口来清理类层次结构。然后成员只能重定位到直接的子类/接口中。

向下推送成员重构示例

操作前:

// File Class.java
public class Class extends SuperClass {
        public void publicMethod() {
        ...
        }
}

// File SuperClass.java
public abstract class SuperClass {
        public abstract void publicMethod();
        public void hiddenMethod() {
        ...
    }
}

操作后:

// File Class.java
public class Class extends SuperClass {
        public void publicMethod() {
        ...
        }
        public void hiddenMethod() {
        ...
        }
}

// File SuperClass.java
public abstract class SuperClass {
        public abstract void publicMethod();
}

向下推送成员

  1. 在编辑器中,打开需要向下推送其成员的类。
  2. 在主菜单或上下文菜单上,选择:重构| 向下推送成员。 “向下推送成员”对话框显示要推下的成员列表。
  3. 在要向下推入的成员区域中,选择要移动的成员。请注意,插入记号的成员已被选中。如果推送某个成员可能会导致问题,则会以红色突出显示通知您。这意味着,如果无人看管,重构后会出现错误。IntelliJ IDEA 会提示您出现“检测到问题”对话框,您可以在其中选择忽略或修复问题。
  4. 选择 "保留摘要" 复选框:如果原始方法是非抽象的,则将原始方法转换为抽象,并将原始方法体移动到子类中的新方法作为抽象方法实现。在子类中创建新的抽象方法,在子类/子接口中创建相同的抽象方法(如果子类不是抽象的,可能会有错误),如果被推送的方法已经是抽象的。
  5. 当您推下具有 JavaDoc 注释的抽象方法时,请指定如何在 JavaDoc 部分处理它们。
  6. 预览并应用更改。
IntelliJ IDEA向上拉取成员重构
IntelliJ IDEA重构:删除中间人
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }