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);
//方法的其余部分
}
但这一行动令人担忧,而不是干净:
- 两次调用方法将只存储第二个值,所以可能是一个集合
- 如果有必要对传递给此方法的所有按钮应用某些操作,但您不知道操作将在何时执行,那么使用集合存储按钮引用会更好(请参阅上一点)
- 您的方法违反了此方法的单一责任原则