如何使用Override方法中传递的参数?

时间:2017-04-19 06:19:11

标签: java oop methods parameters override

如何使用Override方法中传递的参数?

例如:

@Override
protected void updateButtonDayDate(Button dayButton,int currentMonth, int day) {
...
} 

如何在updateButtonDayDate()方法之外使用dayButton?

2 个答案:

答案 0 :(得分:0)

你必须像这样将它分配给全球:

class YourClass {
private Button dayButton;

@Override
          protected void updateButtonDayDate(Button dayButton,int currentMonth, int day) {
this.dayButton=dayButton;
} 
}

现在您可以在任何非静态方法中使用dayButton

答案 1 :(得分:0)

你需要记住,在方法执行之前,这个值将为null,因此要么检查null,要么包装在Optional

  private Optional<Button> dayButton=Optional.empty();

    @Override
    protected void updateButtonDayDate(Button dayButton,int currentMonth, int day) {
        this.dayButton=ofNullable(dayButton);
        // rest of the method
    }

但是这个操作很有意思,不干净:

  • 两次调用方法只会存储第二个值,所以可能是一个集合

  • 如果对传递给此方法的所有按钮应用某些操作,但是您不知道何时执行操作,那么集合将更好地存储按钮引用(请看上一点)

  • 您的方法打破此方法的单一责任主体