7.5. 配置自定义属性

在 OptaPlanner 项目中,您可以添加自定义属性来解析配置元素来实例化类并明确提到自定义属性的文档。

先决条件

  • 您有一个解决者。

流程

  1. 添加自定义属性。

    例如,如果您的 EasyScoreCalculator 具有重缓存计算,并且您希望在一个基准测试中增加缓存大小,请添加 myCacheSize 属性:

      <scoreDirectorFactory>
        <easyScoreCalculatorClass>...MyEasyScoreCalculator</easyScoreCalculatorClass>
        <easyScoreCalculatorCustomProperties>
          <property name="myCacheSize" value="1000"/><!-- Override value -->
        </easyScoreCalculatorCustomProperties>
      </scoreDirectorFactory>
  2. 为每个自定义属性添加一个公共设置,该属性会在构建 Solver 时调用。

    public class MyEasyScoreCalculator extends EasyScoreCalculator<MySolution, SimpleScore> {
    
            private int myCacheSize = 500; // Default value
    
            @SuppressWarnings("unused")
            public void setMyCacheSize(int myCacheSize) {
                this.myCacheSize = myCacheSize;
            }
    
        ...
    }

    大多数值类型都受到支持,包括 布尔值intPimalStringenum