请帮忙合并下面两个 方法 到第三个里面去

private void newClosePopup(){
    closeThePopupAndSetColor();
    self.hide();
    boolean hasData = false;
    EventBus.doFireEvent(new SensorimotorExamUpdatedEvent(hasData));
}

private void closePopup(SensorimotorExam closingModel) {
    closeThePopupAndSetColor();
    self.hide();
    boolean hasData = !closingModel.isNew();
    EventBus.doFireEvent(new SensorimotorExamUpdatedEvent(hasData));
}

private void closeThePopupAndSetColor(){
    self.hide();

    EventBus.doFireEvent(new SensorimotorExamUpdatedEvent(hasData));
}

前两个方法里面有相同的 代码 怎么给整到第三个里面去呀 我写了一点

如果closeThePopupAndSetColor()函数没有其它参数,代码如下

private void closeThePopupAndSetColor(){
closeThePopupAndSetColor();    
self.hide();

 boolean hasData =false;
if(closingModel!=null) //closingModel在函数外面设置,因为函数没有设置参数
hasData = !closingModel.isNew();



    EventBus.doFireEvent(new SensorimotorExamUpdatedEvent(hasData));
}

如果closeThePopupAndSetColor()函数有SensorimotorExam closingModel参数,代码如下

private void closeThePopupAndSetColor(SensorimotorExam closingModel){
closeThePopupAndSetColor();    
self.hide();

 boolean hasData =false;
if(closingModel!=null) //调用第一个函数时,设置closingModel=null
hasData = !closingModel.isNew();



    EventBus.doFireEvent(new SensorimotorExamUpdatedEvent(hasData));
}