对于基准测试,我需要三个不同的设置(“保留所有”、“保留大小”和“保留任何内容”),所以我虽然可以使用枚举。然后我看到我需要多次运行某些案例(基准测试使用种子随机数)并且我的原始枚举变得非常不灵活。对于Caliper,我需要重复枚举项。在一些失败的尝试使其正确之后,我最终想到了这个 hacky 想法:
private enum Randomization {
USE_EXAMPLE_1,
USE_EXAMPLE_2,
KEEP_EXAMPLE_SIZE_1,
RANDOM_1,
RANDOM_2,
RANDOM_3,
;
final boolean keepAll;
final boolean keepSize;
private Randomization() {
keepAll = name().startsWith("U");
keepSize = !name().startsWith("R");
}
}
它完全符合我的要求,我可以以最小的开销添加或删除实验。有没有更好的解决方案?