0

我面临一个有趣的问题。我正在用 Java 开发游戏,我想知道存储常量的最佳方式。我想达到几点:

  • 特定类别(包含在使用或至少分为类别的类型中的常量)
  • 常量的运行时调整(static final由于编译时常量表,简单的常量将不起作用)。
  • 常量名称没有字符串文字。我想使用我的 IDE 为我完成常量名称。
  • 如果可能的话,带有键/值对的外部文件会很好。当引入常量时,我​​将在代码中提供一个默认值,它可能会被存储在外部文件中的值覆盖。可以在启动时或通过控制台命令触发更新(我已经有控制台)

工作流程应该是这样的:我正在调试正在运行的应用程序。我将更改一些常量(在代码中或在外部文件中),触发更新(eclipse 热替换或应用程序内操作)并且常量会立即更改。

任何建议将不胜感激。

4

2 回答 2

1

您可能想了解一些为处理本地化而设计的方法,并根据您的需要进行调整。

这是蓝宝石的...

http://git.eclipse.org/c/sapphire/org.eclipse.sapphire.git/tree/plugins/org.eclipse.sapphire.modeling/src/org/eclipse/sapphire/LocalizableText.java

基本思想是您有一些带有注释的静态(但不是最终字段)以提供默认/初始值。您在类初始化期间执行一个方法,该方法通过首先查看属性文件并回退到注释来填充这些静态数据。

它看起来像这样:

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 );
    }

    ...
}
于 2013-10-10T16:59:54.483 回答
0

在大型项目中存储常量的最佳方法是创建一个单独的文件,其名称具有常量,例如:“StackOverflowConstants.java”

将此文件中的常量用作:-

public static final String USERNAME = "STACK";
于 2013-10-10T15:59:53.253 回答