首先,这不是 Initialize final variable before constructor in Java 的精确副本.应该是相关的,但是没有一个让我满意的答案。
我的问题是关于 Swing GUI 中的最终变量。特别是关于自定义Action
。
我有一些 final
变量和一些 static final
变量。
问题是:如果变量实际上是常量,哪个更好:在构造时初始化它们,还是在声明时初始化它们?
我上面提到的问题的答案通常指向变量 static
,只要你在声明它时能够分配它。这对我来说真的没有意义,因为变量不在静态上下文中使用。我有几个我的表单像图标一样使用的图像,我将它们设为静态,因为图像只是一个静态的东西,除非您的应用程序修改它们。这是有道理的。
另一方面,Action
是自定义内部类的新实例。从技术上讲,它们也是静态的,但感觉不同。它们只是不能在静态上下文 imo 中可用。我也是这样说的:
private final CustomAction customAction = new CustomAction();
还是在构造函数中初始化它?哪个更好?还是我对 static
的想法有误?
最佳答案
如果字段是一个常量,让它成为类的static final
成员,
public class Foo{
public static final int BAR = ...;
}
否则,在构造函数中初始化字段。
关于java - 最终变量赋值 : at declaration or in constructor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093668/