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

Java 如何使用在Override方法中传递的参数?,java,oop,methods,parameters,overriding,Java,Oop,Methods,Parameters,Overriding,如何使用在覆盖方法中传递的参数 例如: @Override protected void updateButtonDayDate(Button dayButton,int currentMonth, int day) { ... } 如何在updateButtonDayDate()方法之外使用dayButton?您必须将其分配给全局,如下所示: class YourClass { private Button dayButton; @Override protected

如何使用在覆盖方法中传递的参数

例如:

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

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

您必须将其分配给全局,如下所示:

class YourClass {
private Button dayButton;

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

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

,您需要记住,在方法执行之前,该值将为null,因此可以检查null,也可以使用wrap-in-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
    }
private Optional dayButton=Optional.empty();
@凌驾
受保护的void updateButtonDayDate(按钮日期按钮,int currentMonth,int day){
this.dayButton=ofNullable(dayButton);
//方法的其余部分
}
但这一行动令人担忧,而不是干净:

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

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

  • 您的方法违反了此方法的单一责任原则


保存对它的引用…但是如果没有更多的上下文,我会有点害怕。您想在这里实现什么?所以在执行时,两个变量的dayButton值应该相同?