Java+;Eclipse:存储常量并在运行时对其进行调优的最佳方法
我正面临一个有趣的问题。我正在用Java开发一个游戏,我想知道存储常量的最佳方法。我想实现以下几点:Java+;Eclipse:存储常量并在运行时对其进行调优的最佳方法,java,eclipse,debugging,constants,Java,Eclipse,Debugging,Constants,我正面临一个有趣的问题。我正在用Java开发一个游戏,我想知道存储常量的最佳方法。我想实现以下几点: 类特定的(使用类型中包含的常量,或至少划分为类别) 常量的运行时调优(由于编译时常量表的原因,简单的静态最终常量将不起作用) 常量名称没有字符串文字。我想使用我的IDE为我完成常量名称 如果可能的话,使用键/值对的外部文件会更好。当引入常量时,我将在代码中提供一个默认值,它可能会被存储在外部文件中的值覆盖。更新可以在启动时触发,也可以通过控制台命令触发(我已经有了控制台) 工作流应该是这样的
- 类特定的(使用类型中包含的常量,或至少划分为类别)
- 常量的运行时调优(由于编译时常量表的原因,简单的
静态最终
常量将不起作用)李>
- 常量名称没有字符串文字。我想使用我的IDE为我完成常量名称
- 如果可能的话,使用键/值对的外部文件会更好。当引入常量时,我将在代码中提供一个默认值,它可能会被存储在外部文件中的值覆盖。更新可以在启动时触发,也可以通过控制台命令触发(我已经有了控制台)
如果您有任何建议,我们将不胜感激。在大型项目中存储常量的最佳方法是创建一个单独的文件,文件名中包含常量,例如:“StackOverflowConstants.java” 将此文件中的常量用作:-
public static final String USERNAME = "STACK";
您可能想看看为处理本地化而设计的一些方法,并根据您的需要调整其中的一种 这里有一个来自Sapphire 基本思想是,您有一些带有注释的静态(但不是最终字段)来提供默认值/初始值。在类init期间执行一个方法,该方法通过首先查看属性文件并返回到注释来填充这些静态 看起来是这样的:
public class NumericRangeValidationService
{
@Text( "{0} is smaller than the minimum allowed value ({1})" )
private static LocalizableText smallerThanMinimumMessage;
@Text( "{0} is larger than the maximum allowed value ({1})" )
private static LocalizableText largerThanMaxiumMessage;
static
{
LocalizableText.init( NumericRangeValidationService.class );
}
...
}
你似乎不清楚常数的概念。您是否在考虑全局参数或属性?您是对的。与其说是常数,不如说是参数。但当它调整到正确的值时,它是一个常数。如果它可以改变,它就不是一个常数。重新考虑你的措辞——你只会把其他人弄糊涂。请阅读OP问题中的这一部分:常量名称没有字符串文字谢谢。这是我现在正在尝试的一种概念。这种方法唯一的缺陷是可能会忘记静态init部分。我不确定,但可能没有办法避免。可惜没有注释构造函数。