在我们的团队中,我们进行了简短的讨论,即在类中声明为“私有静态最终”的字段是否比仅声明为“私有最终”有任何优势。 例如,如果我的课上有以下一行:
private static final String a = "a String";
这真的比仅仅这样声明要好:
private final String a = "a String";
如果它将是可以在此类之外使用的变量,则将其声明为静态是完全有意义的。但是因为它是私有的,所以我看到除了静态变量只创建一次并在所有对象中引用之外,没有任何真正的优势。我们有很多测试,这些测试定义了这样的变量。这些测试仅在系统启动时运行一次,此后不再需要。除此之外,还有什么我想念的吗?
答案 0 :(得分:-1)
简而言之:
当您只需要设置一次值时使用private final
,但是该类的每个实例的值都必须不同。
当类的所有实例都需要访问一个不变的值时,可以使用private static final
。这对于避免魔术字符串/数字并增强可读性很有用,尤其是当您的值是更长的字符串时。如果您开始定义太多这些,请考虑将它们移至配置文件。
因此将static与final和private结合使用当然是有用的,但是static
通常需要仔细,故意使用。不要只是把它拍在身上。相反,您的默认操作应该是分析您是否需要它,并相应地实施。