gpt4 book ai didi

java - Java 中的常量与属性

转载 作者:行者123 更新时间:2023-11-29 09:52:02 24 4
gpt4 key购买 nike

在我的 Java 程序中声明常量值的最佳方法应该是什么?

最好的方法是在 .properties 文件中声明常量值,还是在不同的类中将该值声明为静态最终值?

最佳答案

问题的答案取决于您想要完成的任务。但其中也存在误区。

属性文件

属性文件并不意味着可以替代常量。它们用于存储可配置的值,例如 ip、语言等。从文件加载常量违背了常量的目的。

常量

另一点是 public static final 变量在 java 中不是一个好方法,首选方法是使用枚举器。(来自 Effective Java, Item 30: Use enums instead of int constatns)。 enum 将迫使您以有意义的方式对常量进行分组,而充满随机 public 常量的类则难以管理。 Enum 使您能够提供功能,例如检查、验证、将常量与多个对象相关联,并且可以在 switch 语句中使用。 Enums 也被编译,这使得它们更高效和类型安全。这本书更详细地解释了枚举的好处。

我认为最好的方法是考虑值(value)是否会根据某些外部因素而改变,或者它是否会始终保持不变。

属性文件和对配置的全局访问

假设您的属性文件中有一个 ip,并且您希望能够从代码中的任何位置访问该值。您可以只读取该值并将其加载到公共(public)静态最终变量中。

如果你这样做,你将如何控制值被初始化,或者配置值是否正确?那么在这种情况下,您可以使用单例类模式(只能存在该类的一个实例),它加载文件并检查值是否正确。

它可以将值存储在 private static final 变量中,并启用可以执行所需检查以确保值正确的 getter。这使您可以全局访问变量并将逻辑分组在一个地方。

下次您向文件添加一个值时,您只需更新此类,而无需在代码中搜索它所在的位置以及检查是否正确。

注意

很多人都说做某事并没有真正的“最佳方式”。我认为这是真的,但如果您可以访问 Joshua BlochEffetive Java 等书籍,您也应该阅读这些书并向那些一直在编写代码的人学习真的很长一段时间。

关于java - Java 中的常量与属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43674996/

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