从类似名称或EnumSet Java获取随机Enum

时间:2016-03-11 22:40:58

标签: java enums

我正在尝试获得类似类型的随机枚举。例如,我有枚举TRACK_PLAY_1TRACK_PLAY_2TRACK_PAUSE_1。我希望得到一个随机的TRACK_PLAY枚举。

我目前正在使用EnumSets对Enums进行分类。例如来自TRACK_PLAY的{​​{1}}。

这是我到目前为止所拥有的:

TRACK_PAUSE

我希望能够通过以下内容获取枚举:package com.TobyMellor.smash.core; import java.util.EnumSet; public enum SoundEffect { SMASH_1("smash_1"), SMASH_2("smash_2"), SMASH_3("smash_3"), TRACK_PAUSED_1("track_paused_1"), TRACK_PAUSED_2("track_paused_2"), TRACK_PAUSED_3("track_paused_3"), TRACK_PAUSED_4("track_paused_4"), TRACK_PAUSED_5("track_paused_5"), TRACK_PAUSED_6("track_paused_6"), TRACK_PLAY_1("track_play_1"), TRACK_PLAY_2("track_play_2"), TRACK_PLAY_3("track_play_3"), TRACK_PLAY_4("track_play_4"), TRACK_SKIPPED_1("track_skipped_1"), TRACK_SKIPPED_2("track_skipped_2"), TRACK_SKIPPED_3("track_skipped_3"), TRACK_SKIPPED_4("track_skipped_4"), TRACK_SKIPPED_5("track_skipped_5"); public static EnumSet<SoundEffect> SMASH = EnumSet.of(SMASH_1, SMASH_2, SMASH_3); public static EnumSet<SoundEffect> TRACK_PAUSED = EnumSet.of(TRACK_PAUSED_1, TRACK_PAUSED_2, TRACK_PAUSED_3, TRACK_PAUSED_4, TRACK_PAUSED_5, TRACK_PAUSED_6); public static EnumSet<SoundEffect> TRACK_PLAY = EnumSet.of(TRACK_PLAY_1, TRACK_PLAY_2, TRACK_PLAY_3, TRACK_PLAY_4); public static EnumSet<SoundEffect> TRACK_SKIPPED = EnumSet.of(TRACK_SKIPPED_1, TRACK_SKIPPED_2, TRACK_SKIPPED_3, TRACK_SKIPPED_4, TRACK_SKIPPED_5); private final String testSound; SoundEffect(String bukkitSound) { this.testSound = testSound; } public String getTestSound() { return testSound; } } 这将返回我的SOUNDEFFECT.TRACK_PLAY[randomInt]

非常感谢任何帮助。

谢谢!

托比。

0 个答案:

没有答案