我应该更喜欢内部的最终静态变量还是静态方法中的最终变量

时间:2016-09-30 13:07:48

标签: java static final

如果最终变量仅在一个静态方法中使用,我应该将其声明为类中的最终静态成员,还是静态方法中的最终变量。

如果在方法内部声明,则每次调用函数时都会初始化它。 (函数被调用很多次)

编辑:变量是使用List函数

初始化的Arrays.asList(...)

3 个答案:

答案 0 :(得分:1)

  

如果在方法内部声明,则每次调用函数时都会初始化它。 (函数被调用很多次)

是。如果在方法中声明变量,则每次调用方法时都会调用Arrays.asList(...)

如果您的变量具有昂贵的初始化和/或多次调用该方法,则应将其声明为private static final字段。

答案 1 :(得分:0)

理想情况下,您希望它在方法本身中成为static final 。但Java不支持这一点。 (顺便说一句,C ++确实如此)。

除非变量是对具有启动开销的对象的引用,否则我将它保持为本地并在方法中写入final,而不是用{{1来污染类命名空间这只是在一个函数中使用的。我相信编译器可以进行任何优化。或者,创建一个内部类并在那里声明它。

答案 2 :(得分:0)

是的,可以使用final static。该元素只会初始化一次:在加载类时。你可以多次使用它。