【发布时间】:2014-06-03 09:20:38
【问题描述】:
我有一个带有 AWT GUI 的 Java 程序。我的问题是我在这个程序中有很多抽象类(ActionListener)。在这个抽象类中,我需要从主类调用属性。因此,目前我必须将所有需要的属性设置为最终属性。那不好。我的问题是如何调用主类中的属性(不将其设置为最终属性)。哪种代码风格更好?
例如:
public class mainClass {
TextField field1 = new TextField(10);
(...)
Button connect = new Button("Connecting...");
(...)
connect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ex) {
methodFromTheMainClass(field1.getText());
// How can I call the method methodFromTheMainClass?
}
});
private void methodFromTheMainClass(String fieldContent) {
(...)
}
}
感谢您的帮助,对不起我的英语。 :-/
【问题讨论】:
-
final有什么不好的地方? -
mhh 目前很多属性都是最终的。我不知道这样好不好。而且我不知道如何从主类调用方法。
-
final字段很好!编译器可以使用它们进行大量优化,包括有关内存可见性的内容。实际上,Eclipse 中甚至还有一个选项可以在保存时将所有非可变字段标记为最终字段。但是如果你坚持不让它们成为最终的,你可以创建一个私有类,然后将你的字段作为构造函数参数传递给它们。 -
好的,谢谢! - 但是我怎样才能从主类中调用方法。我可以将这些设置为不是最终的吗?
-
对不起,我不太明白你,你说的“从主类调用方法”是什么意思?
标签: java class awt abstract final