gpt4 book ai didi

Java对象在其作用域之外被访问

转载 作者:行者123 更新时间:2023-11-30 03:40:43 25 4
gpt4 key购买 nike

我正在使用一个java类,作为我的下一个程序的要求的一部分,我需要有一个按钮来实例化我的对象,然后我用它执行各种任务。我的问题是,一旦我在接收按钮点击的 Action 监听器中创建对象,我现在如何使用该对象?

public class Create implements ActionListener {

@Override
public void actionPerformed(ActionEvent e) {
AdvancedAcmeTaxi taxi = new AdvancedAcmeTaxi(Double.parseDouble(input.getText()));
selection.setEnabled(true);
btnCreate.setEnabled(false);
}

}

因此,在上面的代码中,我有自定义监听器,然后创建对象,但由于范围的原因,我只能在此处访问它。我该如何解决?请注意,对于此类的权限,没有 Controller 。只是模型和 View 。这是我的 GUI 类中的嵌套类。它被实例化为 btnCreate.addActionListener(new Create());

最佳答案

您可以将对象定义为类中的成员字段:

public class Create implements ActionListener {

private AdvancedAcmeTaxi taxi;

// getter method for field
public AdvancedAcmeTaxi getTaxi() {
return taxi;
}

public Create() {
...
}
...

@Override
public void actionPerformed(ActionEvent e) {
taxi = new AdvancedAcmeTaxi(Double.parseDouble(input.getText()));;
selection.setEnabled(true);
btnCreate.setEnabled(false);
}

}

添加监听器后,您可以按如下方式访问该字段:

Create listener = new Create();
btnCreate.addActionListener(listener);

...
AdvancedAcmeTaxi taxi = listener.getTaxi();

关于Java对象在其作用域之外被访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com