gpt4 book ai didi

Java + Eclipse : Best way to store constants and tune them at runtime

转载 作者:行者123 更新时间:2023-12-01 14:01:47 25 4
gpt4 key购买 nike

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

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

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

如有任何建议,我们将不胜感激。

最佳答案

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

这是来自蓝 gem 的一张...

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

...
}

关于Java + Eclipse : Best way to store constants and tune them at runtime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300681/

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