我已经阅读了这方面的帖子,所以我知道应该如何避免静态变量,它们不是面向对象的,它们就像全局变量等。
但这是我的问题,希望它不会重复:我有一些私有类变量,许多方法使用这些变量并且传递会很乏味。我正在谈论的类是我的主程序,所以它的唯一实例将是 JVM 创建的实例。
在这种情况下,如果这些变量是静态的,有什么区别吗?(也许如果用户多次打开我的应用程序并且我将变量设为静态,他们会共享变量并相互混合?)
我想使用静态,因为想从枚举内部访问这些变量。谢谢
这是枚举部分的代码:
enum Buttons {
OPEN_BUTTON("Open file...",false),
CHANGE_FONT_BUTTON("Change font",false),
DECOR_BUTTON("Decor font",true),
EDITOR_BUTTON("Open editor",false),
ALPHABET_BUTTON("Open alphabet browser",false),
CTEST_BUTTON("Start consonant test",false),
TESTTYPE_BUTTON("Select test type...",false),
TEST_BUTTON("Start word test",false),
QUIT_BUTTON("Quit", false);
private ButtonBase button;
Buttons(String title, boolean toggle) {
if (toggle) button = ToggleButtonBuilder.create().prefWidth(200).prefHeight(35).text(title).build();
else button = ButtonBuilder.create().prefWidth(200).prefHeight(35).text(title).build();}
void onClick(EventHandler<MouseEvent> eh) {button.setOnMouseClicked(eh);}
ButtonBase getBase() {return button;}
boolean toggled() { return ((ToggleButton)button).isSelected(); }
void setToggle(boolean on) {((ToggleButton) button).setSelected(on); }
void enable() {button.setDisable(false);}
void disable() {button.setDisable(true);}
void setText(String text) { button.setText(text);}
void clicked() {
// 这是我想要事件处理程序的地方...